Javascript AJAX调用未拾取id并将其发送到php文件
我有一个可以接受或拒绝新用户的页面。当某人被接受时,他们会进入一个名为“已接受用户”的部分,在该部分中,管理员必须更改他们的权限级别或组。因此,在下面的示例中,我从该特定用户的user_请求表中获取user_id,并希望通过该id更新我的users表。我只希望通过对我的php文件的AJAX调用,通过选项框更新“group” 由于某些原因,我的AJAX调用找不到id和组#,也没有发送到我的php文件 在控制台的标题部分,我在尝试发送此消息后得到以下消息 身份证号码:0 更新组: 有人知道我做错了什么吗Javascript AJAX调用未拾取id并将其发送到php文件,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我有一个可以接受或拒绝新用户的页面。当某人被接受时,他们会进入一个名为“已接受用户”的部分,在该部分中,管理员必须更改他们的权限级别或组。因此,在下面的示例中,我从该特定用户的user_请求表中获取user_id,并希望通过该id更新我的users表。我只希望通过对我的php文件的AJAX调用,通过选项框更新“group” 由于某些原因,我的AJAX调用找不到id和组#,也没有发送到我的php文件 在控制台的标题部分,我在尝试发送此消息后得到以下消息 身份证号码:0 更新组: 有人知道我做错了什
$con2 = mysqli_connect("localhost", "root", "", "db");
$run2 = mysqli_query($con2,"SELECT * FROM user_requests ORDER BY id DESC");
$runUsers2 = mysqli_query($con2,"SELECT * FROM users ORDER BY id DESC");
$numrows2 = mysqli_num_rows($run2);
if( $numrows2 ) {
while($row2 = mysqli_fetch_assoc($run2)){
if($row2['status'] == "Approved"){
$approved_id = $row2['user_id'];
$approved_firstname = $row2['firstname'];
$approved_lastname = $row2['lastname'];
$approved_username = $row2['username'];
if ($approved_firstname == true) {
echo "Name - ". $approved_firstname . " " . $approved_lastname . "</br>" .
"Username - ". $approved_username . "</br></br>"
?>
<div class="change_group_button">
<a class="change_group" href="javascript:void(0)">Change User Permission</a>
</div><br>
<div id="light" class="change_group_popup">
<a class="close" href="javascript:void(0)">Close</a>
<form id="update_group" action="" method="POST" accept-charset="utf-8">
<div class="field">
<label for="group">Group</label>
<input type="hidden" value="<?php echo $approved_id; ?>" id="approved_id" name="id" />
<select id='group_id' name='group' required>
<option value=''><?php echo htmlentities($group); ?></option>
<option value="1">Bench</option>
<option value="2">Spectator</option>
<option value="3">Team Member</option>
<option value="4">Commissioner</option>
</select>
</div>
<input type="submit" value="submit">
</form>
用户组更新文件
$approved_id = $_POST['id'];
$change_group = $_POST['update_group'];
$con = mysqli_connect("localhost","root","","db");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$stmt = $con->prepare("UPDATE users SET `group`=? WHERE id=?");
if ( !$stmt || $con->error ) {
// Check Errors for prepare
die('User Group update prepare() failed: ' . htmlspecialchars($con->error));
}
if(!$stmt->bind_param('ii', $change_group, $approved_id)) {
// 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));
}
更新:
显示HTML部分的完整代码
if( $numrows2 ) {
while($row2 = mysqli_fetch_assoc($run2)){
if($row2['status'] == "Approved"){
$approved_id = $row2['user_id'];
$approved_firstname = $row2['firstname'];
$approved_lastname = $row2['lastname'];
$approved_username = $row2['username'];
if ($approved_firstname == true) {
echo "Name - ". $approved_firstname . " " . $approved_lastname . "</br>" .
"Username - ". $approved_username . "</br></br>"
?>
<div class="change_group_button">
<a class="change_group" href="javascript:void(0)">Change User Permission</a>
</div><br>
<div id="light" class="change_group_popup">
<a class="close" href="javascript:void(0)">Close</a>
<form id="update_group" action="" method="POST" accept-charset="utf-8">
<div class="field">
<label for="group">Group</label>
<input type="hidden" value="<?php echo $approved_id; ?>" id="approved_id" name="id" />
<select id='group_id' name='group' required>
<option value=''><?php echo htmlentities($group); ?></option>
<option value="1">Bench</option>
<option value="2">Spectator</option>
<option value="3">Team Member</option>
<option value="4">Commissioner</option>
</select>
</div>
<input type="submit" value="submit">
</form>
<p>Bench = 1</p>
<p>Spectator = 2</p>
<p>Team Member = 3</p>
<p>Commissioner = 4</p>
</div>
<div id="fade" class="lighter_black_overlay"></div>
<?php
;} else {
echo "There are no Approved Users at this time.";
}
}
}
}
if($numrows2){
而($row2=mysqli\u fetch\u assoc($run2)){
如果($row2['status']==“已批准”){
$approved_id=$row2['user_id'];
$PROVIDED_firstname=$row2['firstname'];
$approved_lastname=$row2['lastname'];
$approved_username=$row2['username'];
如果($approved_firstname==true){
回显“姓名-”$approved\u firstname。”“$approved\u lastname。””。
“用户名-”$approved\u用户名。”“
?>
团体
长凳
观众
组员
委员
工作台=1
观众=2
团队成员=3名
专员=4
这里有很多问题。首先,您不运行此部分:
$runUsers2 = mysqli_query($con2,"SELECT * FROM users ORDER BY id DESC");
所以您没有组
列
现在,您可以这样合并SQL:
$run2 = mysqli_query($con2,"SELECT user_requests.*,users.group FROM user_requests INNER JOIN users ON user_requests.user_id=users.id ORDER USERS BY id DESC");
$group= $row2['group'];
只是想知道我不知道你的桌子的配置是什么,所以我想这是可以的
现在,您需要获得元素的组,如下所示:
$run2 = mysqli_query($con2,"SELECT user_requests.*,users.group FROM user_requests INNER JOIN users ON user_requests.user_id=users.id ORDER USERS BY id DESC");
$group= $row2['group'];
现在,如果您想选择,您可以使用以下内容:
<?php $selectedstring = "selected"; ?>
<select id='group_id' name='group' required>
<option value=''><?php echo htmlentities($group); ?></option>
<option <?php echo $goup=='1'?$selectedstring:''; ?> value="1">Bench</option>
<option <?php echo $goup=='2'?$selectedstring:''; ?> value="2">Spectator</option>
<option <?php echo $goup=='3'?$selectedstring:''; ?> value="3">Team Member</option>
<option <?php echo $goup=='4'?$selectedstring:''; ?> value="4">Commissioner</option>
</select>
$.ajax({
url: 'user_group_update.php',
type: 'POST',
data: {
'id': $("#approved_id").val(),
'update_group': $("#group_id").val(),
},
success: function (data) {
//do something with the data that got returned
$("#success").fadeIn();
$("#success").show();
$('#success').html('User Permission Level Changed!');
$('#success').delay(5000).fadeOut(400);
alert(data);
},
error: function(jqXHR, textStatus,errorThrown )
{
// alert on an http error
alert( textStatus + errorThrown );
}
});
这里有很多问题。首先,您不运行此部分:
$runUsers2 = mysqli_query($con2,"SELECT * FROM users ORDER BY id DESC");
所以您没有组
列
现在,您可以这样合并SQL:
$run2 = mysqli_query($con2,"SELECT user_requests.*,users.group FROM user_requests INNER JOIN users ON user_requests.user_id=users.id ORDER USERS BY id DESC");
$group= $row2['group'];
只是想知道我不知道你的桌子的配置是什么,所以我想这是可以的
现在,您需要获得元素的组,如下所示:
$run2 = mysqli_query($con2,"SELECT user_requests.*,users.group FROM user_requests INNER JOIN users ON user_requests.user_id=users.id ORDER USERS BY id DESC");
$group= $row2['group'];
现在,如果您想选择,您可以使用以下内容:
<?php $selectedstring = "selected"; ?>
<select id='group_id' name='group' required>
<option value=''><?php echo htmlentities($group); ?></option>
<option <?php echo $goup=='1'?$selectedstring:''; ?> value="1">Bench</option>
<option <?php echo $goup=='2'?$selectedstring:''; ?> value="2">Spectator</option>
<option <?php echo $goup=='3'?$selectedstring:''; ?> value="3">Team Member</option>
<option <?php echo $goup=='4'?$selectedstring:''; ?> value="4">Commissioner</option>
</select>
$.ajax({
url: 'user_group_update.php',
type: 'POST',
data: {
'id': $("#approved_id").val(),
'update_group': $("#group_id").val(),
},
success: function (data) {
//do something with the data that got returned
$("#success").fadeIn();
$("#success").show();
$('#success').html('User Permission Level Changed!');
$('#success').delay(5000).fadeOut(400);
alert(data);
},
error: function(jqXHR, textStatus,errorThrown )
{
// alert on an http error
alert( textStatus + errorThrown );
}
});
这里有很多问题。首先,您不运行此部分:
$runUsers2 = mysqli_query($con2,"SELECT * FROM users ORDER BY id DESC");
所以您没有组
列
现在,您可以这样合并SQL:
$run2 = mysqli_query($con2,"SELECT user_requests.*,users.group FROM user_requests INNER JOIN users ON user_requests.user_id=users.id ORDER USERS BY id DESC");
$group= $row2['group'];
只是想知道我不知道你的桌子的配置是什么,所以我想这是可以的
现在,您需要获得元素的组,如下所示:
$run2 = mysqli_query($con2,"SELECT user_requests.*,users.group FROM user_requests INNER JOIN users ON user_requests.user_id=users.id ORDER USERS BY id DESC");
$group= $row2['group'];
现在,如果您想选择,您可以使用以下内容:
<?php $selectedstring = "selected"; ?>
<select id='group_id' name='group' required>
<option value=''><?php echo htmlentities($group); ?></option>
<option <?php echo $goup=='1'?$selectedstring:''; ?> value="1">Bench</option>
<option <?php echo $goup=='2'?$selectedstring:''; ?> value="2">Spectator</option>
<option <?php echo $goup=='3'?$selectedstring:''; ?> value="3">Team Member</option>
<option <?php echo $goup=='4'?$selectedstring:''; ?> value="4">Commissioner</option>
</select>
$.ajax({
url: 'user_group_update.php',
type: 'POST',
data: {
'id': $("#approved_id").val(),
'update_group': $("#group_id").val(),
},
success: function (data) {
//do something with the data that got returned
$("#success").fadeIn();
$("#success").show();
$('#success').html('User Permission Level Changed!');
$('#success').delay(5000).fadeOut(400);
alert(data);
},
error: function(jqXHR, textStatus,errorThrown )
{
// alert on an http error
alert( textStatus + errorThrown );
}
});
这里有很多问题。首先,您不运行此部分:
$runUsers2 = mysqli_query($con2,"SELECT * FROM users ORDER BY id DESC");
所以您没有组
列
现在,您可以这样合并SQL:
$run2 = mysqli_query($con2,"SELECT user_requests.*,users.group FROM user_requests INNER JOIN users ON user_requests.user_id=users.id ORDER USERS BY id DESC");
$group= $row2['group'];
只是想知道我不知道你的桌子的配置是什么,所以我想这是可以的
现在,您需要获得元素的组,如下所示:
$run2 = mysqli_query($con2,"SELECT user_requests.*,users.group FROM user_requests INNER JOIN users ON user_requests.user_id=users.id ORDER USERS BY id DESC");
$group= $row2['group'];
现在,如果您想选择,您可以使用以下内容:
<?php $selectedstring = "selected"; ?>
<select id='group_id' name='group' required>
<option value=''><?php echo htmlentities($group); ?></option>
<option <?php echo $goup=='1'?$selectedstring:''; ?> value="1">Bench</option>
<option <?php echo $goup=='2'?$selectedstring:''; ?> value="2">Spectator</option>
<option <?php echo $goup=='3'?$selectedstring:''; ?> value="3">Team Member</option>
<option <?php echo $goup=='4'?$selectedstring:''; ?> value="4">Commissioner</option>
</select>
$.ajax({
url: 'user_group_update.php',
type: 'POST',
data: {
'id': $("#approved_id").val(),
'update_group': $("#group_id").val(),
},
success: function (data) {
//do something with the data that got returned
$("#success").fadeIn();
$("#success").show();
$('#success').html('User Permission Level Changed!');
$('#success').delay(5000).fadeOut(400);
alert(data);
},
error: function(jqXHR, textStatus,errorThrown )
{
// alert on an http error
alert( textStatus + errorThrown );
}
});
我在评论中清楚地写下了我之前写的内容:
您必须指定要读取提交表单的输入值,因为在html中有许多表单、输入和选择具有相同的ID,这是不好的。因此更改:
id: $("#approved_id").val(), //id
update_group: $("#group_id").val() //group level
何处
我在评论中清楚地写下了我之前写的内容:
您必须指定要读取提交表单的输入值,因为在html中有许多表单、输入和选择具有相同的ID,这是不好的。因此更改:
id: $("#approved_id").val(), //id
update_group: $("#group_id").val() //group level
何处
我在评论中清楚地写下了我之前写的内容:
您必须指定要读取提交表单的输入值,因为在html中有许多表单、输入和选择具有相同的ID,这是不好的。因此更改:
id: $("#approved_id").val(), //id
update_group: $("#group_id").val() //group level
何处
我在评论中清楚地写下了我之前写的内容:
您必须指定要读取提交表单的输入值,因为在html中有许多表单、输入和选择具有相同的ID,这是不好的。因此更改:
id: $("#approved_id").val(), //id
update_group: $("#group_id").val() //group level
何处
如果您在浏览器中查看页面的源代码,$approved\u id
的正确值是否出现在您的中?是的。它有结束括号。我只是在我的问题中添加了更多html代码来显示它。对不起,但我不明白,您提交的表单是否打印了1次或更多?因为问题可能是两次输入隐藏在相同的id。如果有多个您必须重命名:approved_id_0 approved_id_1,并在javascript中使用正确的id调用它们。@LucaOlivieri:他有与“表单id”相同的错误…并且他提交正确。:-/这很奇怪,如果问题是这样的,请尝试:$(this)。查找(“#approved_id”).val()以检索id的值。并选择$(this).find(“#组id选项:选中”).val();如果您在浏览器中查看页面的源代码,$approved\u id
的正确值是否出现在您的中?是的。它有结束括号。我只是在我的问题中添加了更多html代码来显示它。对不起,我不明白,您提交的表单是否打印了1次或更多?因为问题可能是两次输入h相同的id。如果您必须重命名多个:approved_id_0 approved_id_1,并在javascript中使用正确的id调用它们。@LucaOlivieri:他有与“表单id”相同的错误…并且他提交正确。:-/这很奇怪,如果问题是这样的,请尝试:$(this)。查找(“#approved_id”).val()以检索id的值。并选择$(this).find(“#group_id option:selected”).val();如果您在浏览器中查看页面的源代码,$approved_id
的正确值是否出现在您的中?是的。它有右括号。我刚刚在q中添加了更多html代码