我是一名初学PHP程序员,我想知道我的代码出了什么问题.
以下是受影响地点的小摘录:
echo "<form action='?tab=4' name='toedit5' method='get'><input value='text' onblur='edit('toedit5')' /></form>";
Run Code Online (Sandbox Code Playgroud)
在Chrome的开发者工具中,form元素完全消失了,edit('toedit5')变成了edit(' toedit5').
该edit()功能不执行.
这一行代码有什么问题吗?否则就是外面的代码弄乱了它.对不起,我没有包含它,但我不知道要包含什么.如果您需要更多信息,请告诉我.
谢谢.
您需要在引用的echo'd语句中转义引号,如下所示:
<?php
echo "<form action='?tab=4' name='toedit5' method='get'>";
echo "<input value='text' onblur='edit(\"toedit5\")' />"; // escaped..!
echo "</form>";
?>
Run Code Online (Sandbox Code Playgroud)
当我开始时,它帮助我这样思考:你的浏览器如何知道第二个单引号onblur='edit('toedit5')'是关闭你的onblur陈述还是打开参数?在此示例中,您的浏览器将配对它看到的前两个引号并将其分配给onblur属性,即:onblur='edit('仅限:
更新1:
使用上面的代码,我检查了我在Chrome的开发人员工具中创建的一个快速PHP页面,并且能够看到以下内容(可供检查的表单):
