如何将php变量插入到html元素中包含的js函数中

时间:2013-06-04 19:14:42

标签: php javascript html asynchronous

我有这个js

function fill(a,b)

并且还有这个PHP代码:

$a_value; $b_value;

我想以某种方式在下面插入两个var,所以我可以将它们作为js函数的参数运行fill

编辑:

echo '<li  onClick="fill(\''.$result['name'].'\');">'.$result['name'].'</li>';

第二个参数必须是$ b_value及其字符串文本

5 个答案:

答案 0 :(得分:1)

您需要json_encode才能将PHP变量转换为JS-ready格式。此外,您需要通过htmlspecialchars运行它,以便在属性中使用它。

更安全的选择是:

echo '<li data-avalue="'.htmlspecialchars($a_value).'"
    data-bvalue="'.htmlspecialchars($b_value).'"
    onClick="fill(this.getAttribute(&quot;data-avalue&quot;,'
        .'this.getAttribute(&quot;data-bvalue&quot;);">'.$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; ?>)