我有以下javascript代码
echo ' <a href = "javascript:void(0)" onclick = "document.getElementById("items").style.display="block";document.getElementById("fade").style.display="block""><span style="padding-left:0px"><input type="submit" name="r" style="width: 138px; font-weight:bold; " value="Add item"/></span></a>
';
我正在尝试从php脚本中执行脚本。当我点击按钮执行它的java部分时,没有任何反应。然后我就这样试试
echo ' <a href = "javascript:void(0)" onclick = "document.getElementById('items').style.display='block';document.getElementById('fade').style.display='block'"><span style="padding-left:0px"><input type="submit" name="r" style="width: 138px; font-weight:bold; " value="Add item"/></span></a>
';
并得到此解析错误:解析错误,期待'," or
';“。
答案 0 :(得分:2)
你必须在php中的字符串中转义撇号。而不是
echo '(...) style.display='block' (...)';
DO
echo '(...) style.display=\'block\' (...)';
话虽如此,尝试将代码分成多行,这样至少有些可读。你也可以在php中写这样的HTML:
<?php
// php code
echo 'php';
?>
<HTML code>
<?php
// more php code
答案 1 :(得分:1)
echo ' <a href = "javascript:void(0)" onclick = "document.getElementById('items').style.display='block';document.getElementById('fade').style.display='block'"><span style="padding-left:0px"><input type="submit" name="r" style="width: 138px; font-weight:bold; " value="Add item"/></span></a>
';
这不起作用,因为JS echo中的单引号params打破了PHP流程。尝试在回显中的每个单引号之前添加中断字符,不确定它在PHP中是什么,但尝试\'
IE:
Id('items')
变为
Id(\'items\')
答案 2 :(得分:1)
这与PHP无关。
您正在使用"
引号来界定JavaScript字符串内部使用"
个字符分隔的HTML属性值。
结果,JS中的第一个"
终止了HTML属性值。
快速破解是在属性值中使用"
而不是"
。
更好的解决方案是使用unobtrusive JavaScript