从PHP获取变量设置Javascript变量

时间:2015-10-01 12:27:04

标签: javascript php jquery

我有一个页面,我收集了两个变量,我想将这些变量传递给我的文档就绪函数。但出于某种原因..我的测试警报只是输出行代码而不是结果。

只是要注意JS脚本在另一个链接到该页面的文件中。

PHP

<?php 

$cardid = test;
$custid = test;

?>

的Javascript

$(document).ready(function(){

   var custid = '<?php echo($custid); ?>';
   var cardid = '<?php echo($cardid); ?>';

   alert(custid);
   alert(cardid);
});

6 个答案:

答案 0 :(得分:3)

将您的javascript代码放入脚本标记下的单独的php文件中:

<script>

    $(document).ready(function(){

       var custid = '<?php echo($custid); ?>';
       var cardid = '<?php echo($cardid); ?>';

       alert(custid);
       alert(cardid);
   })

</script>

将此文件包含在主php文件中(使用include功能)。 无法在单独的.js文件中执行php。

答案 1 :(得分:0)

您没有为PHP变量分配任何内容:

$cardid = test;
$custid = test;

一个不是数字且不在引号之间的值在PHP中被视为常量。并且常量test很可能在PHP环境中没有任何价值。

你想分配一个字符串,我猜,所以不要忘记引号:

$cardid = "test";
$custid = "test";

答案 2 :(得分:0)

错误的概念。 您的JS不会被PHP解析,因此您的方法将无法正常工作。 让它工作:

您必须使用一个技巧将变量提供给JS:在脚本标记中将其写入HTML,然后您可以在JS中访问它们。

让我们假设您在PHP中生成这样的HTML:

<body>
 <div>Hello World</div>
</body>

现在,将JS中的变量写入其中,这是一个简单的方法:

echo "<script>var myVar1='".$_GET['var1']."';</script>\n";
echo "<body>\n";
echo "  <div>Hello World</div>\n";
echo "</body>\n";

好的,非常简单,不要在现实中这样做,但你有这个概念吗? 所以,这就是做到这一点的诀窍。

P.S。同样,你得到$ _POST数据到你的JS;)

答案 3 :(得分:0)

考虑使用quote来表示字符串。

<?php 

$cardid = 'test';
$custid = 'test';

?>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-alpha1/jquery.js"></script>
<script>
$(document).ready(function(){

   var custid = '<?php echo($custid); ?>';
   var cardid = '<?php echo($cardid); ?>';

   alert(custid);
   alert(cardid);
});
</script>

答案 4 :(得分:0)

PHP代码只能在以.php结尾的文件中运行。您的.js文件是直接加载的,不受PHP处理。如果您希望将PHP变量的值分配给javascript变量,则需要在.php文件的脚本块中执行此操作。

例如,如果您将其添加到.php文件 -

<script type="javascript">
  var custid = '<?php echo $custid; ?>';
  var cardid = '<?php echo $cardid; ?>';
</script>

然后在你的.js文件中看起来像 -

$(document).ready(function(){
   alert(custid);
   alert(cardid);
});

答案 5 :(得分:0)

当然可以在.js文件中运行PHP。与将PHP作为Apache模块运行一样,您可以添加希望Apache识别为PHP脚本的所有扩展,例如:

AddType application/x-httpd-php .php .html .htm .js

从php5.3开始,您可能会遇到问题,因此您也可以尝试:

AddHandler application/x-httpd-php7 .php .html .htm .js
AddHandler application/x-httpd-php .php .html .htm .js
AddHandler x-httpd-php .php .html .htm .js

如果仍然遇到问题,请在您的.htaccess中使用301重定向或重写规则,例如:

Redirect 301 "^(.*)/dir/example.js$" "http://www.domain.de/dir/example.php" [NC,L,QSA]

如果您在lighttpd上,请转至/etc/lighttpd.conf或在Windoze C:\ lighttpd \ etc \ lighttpd.conf上,取消注释“ mod_cgi”行并添加以下行:

cgi.assign = ( ".js" => "c:/php/php-cgi.exe" )

不要仅仅因为有人对你说“你不能做到这一点或那件事”就放弃;;-)