jquery:ajax 请求不起作用

Pru*_*goe 1 php ajax jquery

当我尝试从 jquery 触发此 ajax 请求时,我没有收到任何响应:

/********************************
CHANGE USER SETTINGS
*********************************/

$(".submitUserSetting").live('click', function() {

    //get values
    var department = $("#us_department").val(); 
    var sortOrder = $("input[@name=us_sortOrder]:checked").val();

    $.ajax({
        type: "POST", 
        url: "lib/includes/updateUserSettings.php",
        data: "empname=" + empname + "&department=" + department + "&sortOrder=" + sortOrder,
        success: function(data) { 
            alert(data);
        }
    });


});
Run Code Online (Sandbox Code Playgroud)

我没什么意思。没有 JavaScript 错误,MySQL 查询没有错误,甚至在 console.log 中也没有 POST 数据。只是一阵嘲讽的沉默。即使我注释掉 PHP 页面中的所有代码并仅回显我发送给它的数据,也没有任何结果。这是 PHP 页面(类存在,函数工作,我在十几个其他页面上使用它们)

 <?php

    require_once("../classes/mysqlconnect.php");
    $db = new dbconnect();
    $db->makeConnections("TimeSheetManager");

    $empname = $_POST['empname'];
    $department = $_POST['department'];
    $sortOrder = $_POST['sortOrder'];


    //get the department id
    $dQuery = "SELECT id FROM departments WHERE department = '" . $department . "'";
    $dResults = $db->getResults($query); 
    if (mysql_num_rows($dResults) > 0) { 
        while($rows = mysql_fetch_array($dResults) { 
            $deptID = $rows['id'];
        }
    } 


    //update database
    $query = "UPDATE users SET `department` = '" . $department "', `displayOrder` = '" .        $sortOrder . "' WHERE username = '" . $empname . "'"; 
    $results = $db->getResults($query); 

    if ($results) { 
        echo "!success"; 
    } else { 
        echo "!fail"; 
    }

    ?>
Run Code Online (Sandbox Code Playgroud)

这是表单代码:

<div id="userSettingsForm">
        <form name="userSetting">
            <p><label for="sortOrder">Display Order:</label></p>
            <p class="userSettingElement">Oldest First&nbsp;<input type="radio" name="us_sortOrder" value="asc">&nbsp;&nbsp;Newest First&nbsp;<input type="radio" name="us_sortOrder" value="dsc"></p>
            <p><label for="us_department">Department:</label></p>
            <p class="userSettingElement">
                <select id="us_department" name="us_department">
                <option value="null">Select A Department</option>
                <?php 

                    $query = "SELECT * FROM departments";
                    $results = $db->getResults($query);

                    while($row = mysql_fetch_array($results)){
                        if (count($results) > 0) { 
                            //get department and id
                            $department = $row['department'];
                            $deptID = $row['id'];

                            print "<option value=\"" . $deptID . "\">" . $department . "</option>";
                        }
                    }

                ?>
                </select>
            </p>
            <p><a href="javascript:void(0);" class="submitUserSetting btn">Submit</a></p>
        </form>
    </div>
Run Code Online (Sandbox Code Playgroud)

感谢所有的帮助和建议。我重新启动了 Firefox,错误出现在 empname 中,我没有设置它(哦!)。白鲸明白了这一点,但我花了一点时间才明白这一点。希望我能给大家一个答案。

Kei*_*ith 5

你怎么知道你没有收到错误?将错误处理程序添加到您的 .ajax() 调用中:

$.ajax({
    type: "POST", 
    url: "lib/includes/updateUserSettings.php",
    data: "empname=" + empname + "&department=" + department + "&sortOrder=" + sortOrder,
    success: function(data) { 
        alert(data);
    },
    error: function (xmlHttpRequest, textStatus, errorThrown) {
         alert(errorThrown);
    }
});
Run Code Online (Sandbox Code Playgroud)