JS函数是
function func(arg){
alert(arg);
}
当我做时
echo "<div onclick='"func($arg)'">Text</div>";
在php中,它不起作用但当我做时
echo "<div onclick='"func()'">Text</div>";
它起作用,并弹出一个带有未定义文本的警报。
我该如何通过争论?
您需要引用参数。例如
<?php
$foo = 'bar';
?>
echo "function($foo) { ... }";
将生成代码
function(bar) { ... }
其中CCD_ 1将被解释为未定义的变量。
最安全的方法是通过json_encode()输出PHP变量,以确保生成语法有效的javascript。例如
echo 'function(' . json_encode($foo) . ') { ... }';
这将产生(在这种情况下)
function ('bar') { ... }
您需要将$arg
括在引号中。示例:
echo "<div onclick='"func('$arg')'">Text</div>";
(在arg
周围使用单引号,就像在字符串中使用双引号一样)
您可以这样做(当然,如果$args存在)
echo '<div onclick="func('.$arg.')">Text</div>';