我有以下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='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>";
}
这基本上只是创建了一个带有DB选项的选择框。onchange允许用户在不重新加载页面(ajax)的情况下更新DB。
奇怪的是DOM显示了这一点(IE 11):
<select id="targetDept" style="width: 200px;" onchange="updateRequest(212, " $('#targetdept').val())'="" targetdept',="" width="200">
具体来说,为什么有"
、=""
和width="200px"
将javascript函数作为文本进行回显很好。。。IE似乎把onchange
标签搞砸了。
您在onchange
上使用'
时出现语法错误,而"
使用用
'
的转义onChange
中使用的'
echo "<select id='targetDept' width='200' style='width:200px;' onchange='updateRequest(".$request['id'].", "targetDept", $("#targetDept").val())'>";