0

我正在使用这个 php 代码

echo " onclick='myFunction(" . $row['username'] . ")'"

给我这个结果

onclick="myFunction(Francis88)"

但我想要这个:

onclick="myFunction('Francis88')"

我应该如何更改我的 php 代码以获得这个?

4

2 回答 2

3

使用 a\转义字符串中的字符,例如:

echo " onclick=\"myFunction('" . $row['username'] . "')\""
于 2013-05-04T16:54:41.183 回答
2

我会用json_encode()它来确保它不会与 O'Reilly 之类的名字混淆;然后,应用htmlspecialchars()以确保生成的字符串不会导致 HTML 属性出现问题:

printf(' onclick="myFunction(%s)"', 
    htmlspecialchars(json_encode($row['username']), ENT_QUOTES, 'UTF-8')
);

我这里也用了单引号,这样 HTML 属性值就可以用双引号括起来了;有争议,但我讨厌单引号属性;-)

另请参阅我之前的回答,了解使用内联 JavaScript 的缺点。

于 2013-05-04T16:57:06.517 回答