所以,基本上我有一个用PHP创建的按钮,它运行一个JavaScript函数,例如
function CreateText(id, string){
alert(id + '' + string);
}
所以PHPcode看起来像这样
echo "<img onclick='CreateText(3,\"$userinput\")'>";
用户输入来自文本框。但是,只要用户输入包含引号的字符串,就会抛出错误。
知道怎么解决这个问题吗?
答案 0 :(得分:0)
您正在尝试在HTML属性中创建有效的Javascript文字。对于Javascript,使用json_encode
,要使其成为有效的HTML属性,请使用htmlspecialchars
:
$onclick = sprintf('CreateText(3, %s)', json_encode($userinput));
printf('<img onclick="%s">', htmlspecialchars($onclick));
请参阅http://php.net/sprintf,http://php.net/printf,http://php.net/json_encode,http://php.net/htmlspecialchars。