这可能有一个简单的答案,但我无法弄清楚正确的语法。我在php页面上回显了以下onclick事件:
$ratelink = text string...
echo '<div><span id="anything" onclick="updatePos('.$ratelink.')">Save</div>';
在我的JS页面上,我有以下功能:
function updatePos(ratelink)
{
alert(ratelink);
}
我的问题是,当$ ratelink是一个数字时,变量将通过而没有任何问题。但是,当$ ratelink是一个文本字符串时,就像上面的例子中一样,没有任何东西被传递,警报也不会执行。
我认为以下('。$ ratelink。')需要使用不同的语法来传递文本,但我不知道确切的格式。
答案 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);