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


How to Pass PHP String Variable To JS From an Onclick Event

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

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

在我的JS页面,我有函数:

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

我的问题是,当$ratelink是一个数字时,变量将没有问题地传递。然而,当$ratelink是一个文本字符串时,就像上面的例子一样,什么都不会传递,警报也不会执行。

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

传递给JS函数时,需要将字符串括在引号中,在PHP中也是如此:

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

try this

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

如果$ratelink变量中有空格,那么应该在字符串....

中加上引号

你的字符串需要用引号括起来…所以你需要把它改成

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

并确保对字符串进行转义如果字符串中可能有引号

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

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