我正在尝试将带有空格的php定义字符串传递给javascript函数,以便我可以附加到查询字符串。但是,该函数仅在没有空格时才有效,并且在有空格时甚至不执行 - 通过使用alert()进行测试。
有没有办法可以将包含空格的字符串传递给javascript函数,这样我最终可以执行escape(),然后追加到我的查询字符串? (在此示例中使用alert())
.php文件
<a onClick=showUser('<?php echo $stringwithspaces; ?>')>click here</a>
.js文件
function showUser(str)
{
alert (str);
}
如果我只能做...... onClick=showUser(escape('<?php echo $deptname; ?>'))
这样的事情......那会很棒,但那不起作用。任何帮助将非常感激!谢谢!
答案 0 :(得分:7)
问题是你没有引用attribute value。仅当值不包含空格时,才能将引号从属性值中删除,否则HTML处理器无法判断属性何时结束。即便如此,也不建议这样做;你应该总是引用HTML属性。
<a href="showUser('<?php echo addslashes($username) ?>')">user</a>
应该有效。对addslashes
的调用会转义引号,否则会引起另一个问题(过早地结束showUser
的属性或字符串参数。)
答案 1 :(得分:1)
是的,您可以在xml属性字段中遗漏“: 每个属性都必须有一个开头和结尾“
myField=
的 “强> blabla ...
的”强>
onClick="showUser(escape('<?php echo $deptname; ?>'))"
答案 2 :(得分:-1)
尝试使用空格字符的Unicode转义序列'\ u0020'。