我有一个页面,我收集了两个变量,我想将这些变量传递给我的文档就绪函数。但出于某种原因..我的测试警报只是输出行代码而不是结果。
只是要注意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);
});
答案 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" )
不要仅仅因为有人对你说“你不能做到这一点或那件事”就放弃;;-)