如何从Onclick事件将PHP字符串变量传递给JS

时间:2011-12-14 21:12:20

标签: php javascript function variables

这可能有一个简单的答案,但我无法弄清楚正确的语法。我在php页面上回显了以下onclick事件:

$ratelink = text string...
echo '<div><span id="anything" onclick="updatePos('.$ratelink.')">Save</div>';

在我的JS页面上,我有以下功能:

function updatePos(ratelink)
{
  alert(ratelink); 
}

我的问题是,当$ ratelink是一个数字时,变量将通过而没有任何问题。但是,当$ ratelink是一个文本字符串时,就像上面的例子中一样,没有任何东西被传递,警报也不会执行。

我认为以下('。$ ratelink。')需要使用不同的语法来传递文本,但我不知道确切的格式。

4 个答案:

答案 0 :(得分:7)

在传递给JS函数时,以及在PHP中,你需要将字符串括在引号中:

$ratelink = 'text string...';
echo '<div><span id="anything" onclick="updatePos(\''.$ratelink.'\')">Save</div>';

答案 1 :(得分:0)

试试这个echo '<div><span id="anything" onclick=updatePos("'.$ratelink.'")>Save</div>'; 如果$ ratelink变量中有空格,那么它应该用字符串....

引用

答案 2 :(得分:0)

你的字符串需要用引号括起来...所以你需要把它作为

echo '<div><span id="anything" onclick="updatePos(\''.$ratelink.'\')">Save</div>';

并确保你也可以转义字符串,如果它可能有任何引号

答案 3 :(得分:0)

这两个答案都不正确。至少不是最好的选择。考虑使用json_encode()将任何数据从PHP传递给JS。这可确保正确转义数据。

var myObj = <?=json_encode(array('php' => 'array'))?>;

console.log(myObj);
相关问题