将PHP变量传递到Javascript函数

将PHP变量传递到Javascript函数,javascript,php,jquery,Javascript,Php,Jquery,我在加载页面时声明了一个PHP变量,并希望在单击按钮加载的JavaScript/jQuery函数中使用它 我的index.php页面上有以下内容: // Creating a random name for a file and creating it. Working properly. $fname = substr(md5(rand()), 0, 7); $file = fopen("temp/" .$fname, 'w'); 单击按钮时,应运行以下JavaScript函数: //Use

我在加载页面时声明了一个PHP变量,并希望在单击按钮加载的JavaScript/jQuery函数中使用它

我的index.php页面上有以下内容:

// Creating a random name for a file and creating it. Working properly.
$fname = substr(md5(rand()), 0, 7);
$file = fopen("temp/" .$fname, 'w');
单击按钮时,应运行以下JavaScript函数:

//Use the generated filename in the JavaScript function
var fname = <?php echo $fname; ?>;
var fileName = "temp/" + fname;
//在JavaScript函数中使用生成的文件名
var fname=;
var fileName=“temp/”+fname;
我的理解是PHP变量不在JavaScript函数的范围内,因为我相信这是应该做的


你能帮个忙吗?

PHP生成一个页面并将其呈现给浏览器。就浏览器而言,在收到页面时,PHP已经完成。为了回答您的问题,这应该是可行的,因为PHP基本上只是将文本吐到页面上,这将正常工作。也就是说,除非我被严重误导了


当Javascript开始运行时,PHP变量的“作用域”早已消失,因此这不是一个真正的问题。

PHP生成一个页面并将其呈现给浏览器。就浏览器而言,在收到页面时,PHP已经完成。为了回答您的问题,这应该是可行的,因为PHP基本上只是将文本吐到页面上,这将正常工作。也就是说,除非我被严重误导了


当Javascript开始运行时,PHP变量的“作用域”早已消失,因此这并不是一个真正的问题。

尝试这样做。当然是在php文件中

var fname = '<?php echo $fname; ?>';   
var fname='';

尝试这样做。当然是在php文件中

var fname = '<?php echo $fname; ?>';   
var fname='';

我认为您的文件名需要扩展名:

$extension = ".txt";
$fname = substr(md5(rand()), 0, 7).$extension;
$file = fopen("temp/" .$fname, 'w');

我认为您的文件名需要扩展名:

$extension = ".txt";
$fname = substr(md5(rand()), 0, 7).$extension;
$file = fopen("temp/" .$fname, 'w');

问题是缺少了阿南特·库马尔·辛格提到的撇号。 我在一个网页中测试了以下代码:

<?php
        $fname = substr(md5(rand()), 0, 7);
        $file = fopen("temp/" .$fname, 'w');
    ?>
    <html>
    <head
    </head>
    <body>
    <script>
        var fname = "<?php echo $fname; ?>";
        var fileName = "temp/" + fname;
    </script>
    </body>
</html>


问题是缺少了阿南特·库马尔·辛格提到的撇号。 我在一个网页中测试了以下代码:

<?php
        $fname = substr(md5(rand()), 0, 7);
        $file = fopen("temp/" .$fname, 'w');
    ?>
    <html>
    <head
    </head>
    <body>
    <script>
        var fname = "<?php echo $fname; ?>";
        var fileName = "temp/" + fname;
    </script>
    </body>
</html>



您是否尝试过像
var fname=“”
由于它是一个字符串^请检查您的控制台,并确保该文件是
.php
扩展名。当使用引号时,我的控制台将其解释为字符串,以便它尝试查找名为“”的文件:(您是否在PHP文件中?如果您确实需要它在javascript文件中,您可以在PHP文件中创建一个块,让它回显变量,然后在以后的脚本中使用它,但这并不是解决问题的好方法。您是否尝试过像
var fname=“”;
由于它是一个字符串^请检查您的控制台,并确保该文件是
.php
扩展名。当使用引号时,我的控制台将其解释为字符串,以便它尝试查找名为“”的文件:(你是在PHP文件中吗?如果你真的需要它在javascript文件中,你可以在PHP文件中创建一个块,让它回显变量,然后在以后的脚本中使用它,但这并不是解决问题的好方法。我想,当PHP文件和JS函数被一个接一个地调用时,这确实会起作用。它不会起作用。)“我的当前设置不起作用,因为我尝试了:(呃,commentbox太长了。我将我的回复复制到了justpasteit。it:明白了,Neekoy,问题是您的javascript单击函数不在php文件中。因此解释器无法识别”代码是有效的代码。难道你不能在php文件中定义.click函数吗?另一种方法是,你也可以找到一个用于javascript的MD5函数,而不是你根本不需要php文件名。想一想,一个快速的方法是,将你的javascript.js重命名为javascript.php,并更改行,我认为这确实可以在PHP文件和JS函数是一个接一个地调用的。它在我当前的设置中不起作用,因为我尝试了:(呃,commentbox太长了。我将我的回复复制到了justpasteit。It:明白了,Neekoy,问题是您的javascript单击函数不在PHP文件中。因此解释器无法识别“”代码是有效的代码。难道你不能在php文件中定义.click函数吗?另一种方法是,你也可以找到一个用于javascript的MD5函数,而不需要php文件名。想一想,一个快速的方法是,将你的javascript.js重命名为javascript.php并更改行