[英]Use PHP variable in JavaScript
几天来,我一直在寻找可行的解决方案,但我无法让它发挥作用。
我的test.php
有以下代码
<?php
$testNumber = 2;
?>
<script type="text/javascript" src="test.js";
$(function) {
func(<?php echo json_encode($testNumber); ?>);
});
</script>
以及我的 test.js 中的以下代码
function func(testNumber) {
if (testNumber > 1){
alert("function works );
} else {
alert("Function does NOT work");
}
}
func();
当我运行test.php
,我收到警报"Function does NOT work".
而$testNumber
大于 1。
谁能帮我?
与往常一样,您应该查看发送到浏览器的源代码 - 在确定某些东西不起作用的原因时,您的 PHP 是什么样的并不重要。
<script type="text/javascript" src="test.js";
$(function) {
func(2);
});
</script>
这不是有效的 HTML,因为您应该使用>
而不是;
在第一行,你不能有一个既是内部又是外部的<script>
标签。
另外, $(function) { func(2); });
$(function) { func(2); });
甚至不是有效的 JavaScript,但这并不是什么大问题,因为它永远不会被解析为 JS,就像您损坏的<script>
元素上的一组奇怪的属性一样。
现在,至于为什么您的脚本不起作用,您正在调用不带参数的func()
,因此testNumber
undefined
(就像您尝试使用alert(testNumber)
看到的那样),因此它不大于 1,因此“功能不起作用”。
将其更改为:
<?php
$testNumber = 2;
?>
<script type="text/javascript" >;
function func(testNumber) {
if (testNumber > 1){
alert("Function works");
} else {
alert("Function does NOT work");
}
}
func(<?php echo $testNumber; ?>);
</script>
我想你正在寻找这样的东西:
<?php
$testNumber = 2;
?>
<script type="text/javascript">
function func(testNumber) {
if (testNumber > 1){
alert("function works ");
} else {
alert("Function1 does NOT work");
}
}
func(<?php echo json_encode($testNumber); ?>);
</script>
<?php $testNumber = 2; ?>
<script type="text/javascript">
$(document).ready(function() {
func(<?php echo $testNumber; ?>);
function func(testNumber) {
if (testNumber > 1){
alert("function works );
} else {
alert("Function does NOT work");
}
}
});
</script>
这是因为当你json_encode
变量不再是一个数字
试试这个:
func(<?php echo (int)$testnumber; ?>);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.