我正在使用这个 php 代码
echo " onclick='myFunction(" . $row['username'] . ")'"
给我这个结果
onclick="myFunction(Francis88)"
但我想要这个:
onclick="myFunction('Francis88')"
我应该如何更改我的 php 代码以获得这个?
使用 a\
转义字符串中的字符,例如:
echo " onclick=\"myFunction('" . $row['username'] . "')\""
我会用json_encode()
它来确保它不会与 O'Reilly 之类的名字混淆;然后,应用htmlspecialchars()
以确保生成的字符串不会导致 HTML 属性出现问题:
printf(' onclick="myFunction(%s)"',
htmlspecialchars(json_encode($row['username']), ENT_QUOTES, 'UTF-8')
);
我这里也用了单引号,这样 HTML 属性值就可以用双引号括起来了;有争议,但我讨厌单引号属性;-)
另请参阅我之前的回答,了解使用内联 JavaScript 的缺点。