我创建了一个具有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
有什么问题答案 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)
数据是此处的对象,因此要添加用户名,您应该使数据看起来像
data: {
username: $user,
division_name: $(this).find('select[name="group_id"]').val()
}
&#13;
此外,您可能需要在表单中添加ID,因为目前您还没有id #update_group_form名称。