Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript DOM与PHP输出不匹配_Javascript_Php_Jquery_Html_Ajax - Fatal编程技术网

Javascript DOM与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

我有以下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>";
}
函数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())'>";