我有这个js
function fill(a,b)
还有这个php代码:
$a_value; $b_value;
我想以某种方式将这两个 var 插入到下面的行中,这样我就可以将它们作为 js 函数的参数运行fill
编辑:
echo '<li onClick="fill(\''.$result['name'].'\');">'.$result['name'].'</li>';
第二个参数必须是 $b_value 及其字符串文本
我有这个js
function fill(a,b)
还有这个php代码:
$a_value; $b_value;
我想以某种方式将这两个 var 插入到下面的行中,这样我就可以将它们作为 js 函数的参数运行fill
编辑:
echo '<li onClick="fill(\''.$result['name'].'\');">'.$result['name'].'</li>';
第二个参数必须是 $b_value 及其字符串文本
切换单引号 ( '
) 和双引号 ( "
)。那应该给出字符串中的值。
像这样:
echo "<li onClick='fill($a_value , $b_value);'>".$result['name'].'</li>';
如果变量是字符串,您还需要用转义将它们包围:
echo "<li onClick='fill(\"$a_value\" , \"$b_value\");'>".$result['name'].'</li>';
编辑
回复@Tom 关于遵守标准的评论。
您可以使用所有带转义的双引号:
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>';
您需要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>';
这绝对没有歧义。
PHP 基本语法:单引号'
字符串不插入变量。您正在向 JS 代码发送文字$
, a
, _
,v
等...,这将被视为未定义的变量。
尝试
echo "<li onClick=\"fill($a_value , $b_value);\">".$result['name'].'</li>';
^-- ^-- ^--^---
反而。
尝试这个
echo "fill('".$a_value."','".$b_value."');"
我不是 100% 确定这会奏效,但你可以试试
function fill(<?php echo $a_value; ?>,<?php echo $b_value; ?>)