我使用这个php代码
echo " onclick='myFunction(" . $row['username'] . ")'"
给出了这个结果
onclick="myFunction(Francis88)"
但是我想要这个:
onclick="myFunction('Francis88')"
我应该如何改变我的php代码来获得这个?
使用'
转义字符串中的字符,例如:
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的缺点。