我有这个js
function fill(a,b)
并且还有这个PHP代码:
$a_value; $b_value;
我想以某种方式在下面插入两个var,所以我可以将它们作为js函数的参数运行fill
编辑:
echo '<li onClick="fill(\''.$result['name'].'\');">'.$result['name'].'</li>';
第二个参数必须是$ b_value及其字符串文本
答案 0 :(得分:1)
您需要json_encode
才能将PHP变量转换为JS-ready格式。此外,您需要通过htmlspecialchars
运行它,以便在属性中使用它。
更安全的选择是:
echo '<li data-avalue="'.htmlspecialchars($a_value).'"
data-bvalue="'.htmlspecialchars($b_value).'"
onClick="fill(this.getAttribute("data-avalue",'
.'this.getAttribute("data-bvalue");">'.$result['name'].'</li>';
这绝对没有歧义。
答案 1 :(得分:1)
切换单引号('
)和双引号("
)。那应该给出字符串中的值。
像这样:
echo "<li onClick='fill($a_value , $b_value);'>".$result['name'].'</li>';
如果变量是字符串,则需要使用转义包围它们:
echo "<li onClick='fill(\"$a_value\" , \"$b_value\");'>".$result['name'].'</li>';
修改强>
回复@汤姆对于坚持标准的评论。
您可以将所有双引号用于转义:
echo "<li onClick=\"fill($a_value , $b_value);\">".$result['name'].'</li>';
如果变量是字符串,则需要双重转义,一次用于PHP,一次用于HTML:
echo "<li onClick=\"fill(\\"$a_value\\" , \\"$b_value\\");\">".$result['name'].'</li>';
或者,对字符串使用单引号:
echo "<li onClick=\"fill('$a_value' , '$b_value');\">".$result['name'].'</li>';
答案 2 :(得分:0)
试试这个
echo "fill('".$a_value."','".$b_value."');"
答案 3 :(得分:0)
PHP基本语法:单引号'
字符串 NOT 插入变量。您正在向JS代码发送文字$
,a
,_
,v
等...,这将被视为未定义的变量。
尝试
echo "<li onClick=\"fill($a_value , $b_value);\">".$result['name'].'</li>';
^-- ^-- ^--^---
代替。
答案 4 :(得分:-1)
我不是百分百肯定这会奏效,但你可以试试
function fill(<?php echo $a_value; ?>,<?php echo $b_value; ?>)