Javascript DOM与PHP输出不匹配
我有以下PHP脚本:Javascript DOM与PHP输出不匹配,javascript,php,jquery,html,ajax,Javascript,Php,Jquery,Html,Ajax,我有以下PHP脚本: function drawDepts(mysqli $con, $defaultDept) { $deptQuery = "SELECT * FROM depts"; $deptResult = $con->query($deptQuery); global $request; echo "<select id='targetDept' width='200' style='width:200px;' onchange
function drawDepts(mysqli $con, $defaultDept) {
$deptQuery = "SELECT * FROM depts";
$deptResult = $con->query($deptQuery);
global $request;
echo "<select id='targetDept' width='200' style='width:200px;' onchange='updateRequest(".$request['id'].", 'targetDept', $('#targetDept').val()'>";
while ($deptRow = $deptResult->fetch_array(MYSQL_ASSOC)) {
echo "<option value='" . $deptRow['id'] . "' ";
if ($deptRow['id'] == $defaultDept) {
echo "selected='selected'";
}
echo ">" . $deptRow['name'] . "</option>";
}
echo "</select>";
}
函数drawDepts(mysqli$con$defaultDept){
$deptQuery=“从部门中选择*”;
$deptResult=$con->query($deptQuery);
全球美元申请;
回声“;
而($deptRow=$deptResult->fetch_数组(MYSQL_ASSOC)){
回显“$deptRow['name']”;
}
回声“;
}
这基本上只是创建一个带有DB选项的选择框。onchange允许用户在不重新加载页面的情况下更新数据库(ajax)
奇怪的是DOM显示了这一点(IE 11):
具体来说,为什么会有“
,=”
和width=“200px”
将javascript函数作为文本进行响应效果很好……似乎IE正在破坏
onchange
标记。您的onchange
与之间有语法错误。
和“
使用\
来逃避onchange
中使用的
echo "<select id='targetDept' width='200' style='width:200px;' onchange='updateRequest(".$request['id'].", \"targetDept\", $(\"#targetDept\").val())'>";
echo”“;
问题是因为您正在使用”
来界定onchange
属性以及其中的targetDept
字符串。这是一个语法错误。您需要转义内部字符串,或者更好地使用Javascript来附加事件处理程序,而不是在*属性上附加丑陋的。
echo "<select id='targetDept' width='200' style='width:200px;' onchange='updateRequest(".$request['id'].", \"targetDept\", $(\"#targetDept\").val())'>";