AJAX调用不通过发送数据

时间:2015-08-31 19:10:47

标签: javascript php jquery ajax forms

我创建了一个具有SELECT下拉列表的表单,我可以SELECT一个用户,然后是我在数据库输出中的当前分区。这非常有效。但是,我正在尝试添加/创建一个新脚本,我可以UPDATE当前用户所在的部门,但我没有让它正常工作。

            <label>Current Division
                <input type="text" id="current_division">
            </label>
            <form name="update_group_form" action="" type="POST">   
                <select name="division_name">
                    <option value="1">East</option>
                    <option value="2">West</option>
                </select>
                <input type="submit" value="submit" name="division_update_button">
            </form>

我的AJAX电话#1

我收到数据中用户旁边的+的错误。

$(document).ready(function(){ 
        $("#update_group_form").on("change", function(){
            $user = this.value;
            $.ajax({ 
                url: "update_division.php", 
                type: "POST",
                data: {
                "username="+$user,
                //console.log($user);
                division_name: $(this).find('select[name="group_id"]').val()
                },
                success: function(text){ 
                     alert(data);
            },
             error: function(jqXHR, textStatus,errorThrown )
            {
              // alert on an http error 
              alert( textStatus +  errorThrown );
            }
        });
        return false;
    });
});

这是我如何获得我选择的用户当前分区的AJAX调用#2。它工作得很好,我没有收到用户旁边的+的错误...

$(document).ready(function(){ 
            $("#member_division").on("change", function(){
                $user = this.value;
                $.ajax({ 
                    url: "show_division.php", 
                    type: "POST",
                    data: "username="+$user, 
                    success: function(text){ 
                        if(text == "Error!"){ 
                            alert("Unable to get user info!"); 
                        } else { 
                            var txtArr = text.split('|');
                            //0: Contains current division
                            //1: Contains losses
                            $("#current_division").val(txtArr[0]);
                            //$("#losses").val(txtArr[1]);
                        } 
                    }, 
                    error: function(xhr, textStatus, errorThrown){ 
                        alert(textStatus + "|" + errorThrown); 
                    } 
                });
            });
        });

发布我的PHP文件,以防这对任何人都有帮助..

$update_division = $_POST['division_name'];


$con = mysqli_connect("localhost","","","");
    /* check connection */
    if (mysqli_connect_errno()) {
        printf("Connect failed: %s\n", mysqli_connect_error());
        exit();
    }
    $stmt = $con->prepare("UPDATE division FROM team_rankings WHERE username = :user");
    if ( !$stmt || $con->error ) {
     // Check Errors for prepare
        die('User Group update prepare() failed: ' . htmlspecialchars($con->error));
    }
    if(!$stmt->bind_param('i', $update_division)) {
    // Check errors for binding parameters
        die('User Group update bind_param() failed: ' . htmlspecialchars($stmt->error));
    }
    if(!$stmt->execute()) {
        die('User Group update execute() failed: ' . htmlspecialchars($stmt->error));
    }
?>

我的AJAX电话#1

有什么问题

2 个答案:

答案 0 :(得分:1)

因为在您的第一个ajax中,您尝试提醒数据但是您传递文字

如果你的端点是正确的,你应该:

$(document).ready(function(){ 
        $("#update_group_form").on("change", function(){
            $user = this.value;
            $.ajax({ 
                url: "update_division.php", 
                type: "POST",
                data: {
                "username="+$user,
                //console.log($user);
                division_name: $(this).find('select[name="group_id"]').val()
                },
                success: function(data){ 
                     alert(data);
            },
             error: function(jqXHR, textStatus,errorThrown )
            {
              // alert on an http error 
              alert( textStatus +  errorThrown );
            }
        });
        return false;
    });
});

答案 1 :(得分:1)

数据是此处的对象,因此要添加用户名,您应该使数据看起来像

&#13;
&#13;
data: {
username: $user,
division_name: $(this).find('select[name="group_id"]').val()
}
&#13;
&#13;
&#13;

此外,您可能需要在表单中添加ID,因为目前您还没有id #update_group_form名称。