我正在尝试通过 AJAX 调用向我的 update_divisions.php 文件发送一个 UPDATE
查询以更新玩家的分区。我有一个选择框,我可以从中选择用户,然后是另一个选择框,我可以选择我要发送的部门。我没有包括这个,但我有一个 AJAX 调用,它从一个显示用户名和他们当前所在部门的 php 文件中获取信息。这很完美。所以,我现在只是想更新这个部门。我打开了 php 错误代码,但没有收到任何错误。在我点击提交发送以下内容后,我的网络选项卡出现错误:
未捕获的语法错误...对于我的 AJAX 调用中的这一行...
"username="+$user,
我做错了什么?
这是我的完整代码。
try {
//Prepare
if ($division_stmt= $con->prepare("SELECT * FROM team_rankings WHERE user_id=user_id")) {
$division_stmt->execute();
$division_stmt->bind_result($division_id, $division_user_id, $division_firstname, $division_username, $division_division, $division_wins, $division_losses);
//var_dump($division_stmt);
if (!$division_stmt) {
throw new Exception($con->error);
}
$division_stmt->store_result();
echo "<span class='top_bottom_margin'>Select a user to modify their team rank</span>". "<br>";
echo "<select id = 'member_division'>";
while ($division_row = $division_stmt->fetch()) {
echo "<option value='{$division_username}' data-username='{$division_username}'>{$division_username}</option>";
}
echo "</select>";
} else {
echo "<p>There are not any team players yet.</p>";
}
}
catch (Exception $e)
{
echo "Error: " . $e->getMessage();
}
?>
<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 调用
$(document).ready(function(){
$("#update_group_form").on("change", function(){
$user = this.value;
$.ajax({
url: "update_division.php",
type: "POST",
data: {
"username="+$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;
});
});
PHP 文件 - update_division.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));
}
最佳答案
如我所见,您正在尝试合并 php 和 jquery。
试着改变这个:
$user = this.value;
为此:
var user = this.value;
还有这个:
"username="+$user,
为此:
"username="+user,
告诉我它是否有效。
关于javascript - AJAX 调用和更新查询无法正常运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32256374/