将php变量值传递给javascript函数

将php变量值传递给javascript函数,php,javascript,Php,Javascript,我像这样传递PHP变量值: <input type="button" name="delete" value="Remove" onclick="del(<?echo $arr1[0]?>);"/> 使用json\u encode()将值转换为JavaScript值: <input type="button" name="delete" value="Remove" onclick="del(<?=htmlspecialchars(json_encode($

我像这样传递PHP变量值:

<input type="button" name="delete" value="Remove" onclick="del(<?echo $arr1[0]?>);"/>
使用
json\u encode()
将值转换为JavaScript值:

<input type="button" name="delete" value="Remove" onclick="del(<?=htmlspecialchars(json_encode($arr1[0]))?>);"/>

您应该将值作为字符串传递:

<input type="button" name="delete" value="Remove" onclick="del('<?echo $arr1[0]?>');"/>

当您可以让
json_encode()
以永不中断的方式为您执行此操作时,为什么要手动执行此操作,如果字符串包含引号,则可能会中断?当然,这取决于数据格式。问题中给出的是一个简单的数字和破折号字符串id。在旁注中,
json_encode()
将在这种特殊情况下中断代码,因为字符串将使用双引号(
)进行转义,而撇号(
)应改为在此处使用。否则HTML将被破坏。我是否需要安装任何包来使用json_encode()?因为我之前尝试使用json_encode,但没有调用javascript函数。这正是我在前面的评论中所说的:
json_encode()
将破坏HTML,因为在双引号属性值中不能有双引号。为了避免在仍然使用
json_encode()
时破坏HTML,需要在onclick值周围使用撇号。使用ThiefMaster的解决方案,
…onclick='del();'…