我在while循环中有以下复选框,想要更新mysql数据库中的值,我该怎么做?我希望有人可以帮助我吗? :)
我已经添加了我的AJAX代码。
复选框/ Whileloop
$sql = "SELECT * FROM $user ORDER BY page_order";
if ($row['status']==1) {
$status = "checked";
$users = $mysqli->query($sql);
while($row = $users->fetch_assoc()){
?>
<tr id="<?php echo $row['id'] ?>">
<td><?php echo $row['name'] ?></td>
<td><?php echo $row['seconden'] ?> sec.</td>
<td>
<input type="checkbox" id="status" data-toggle="toggle" value="<?php echo $row['status']; ?>" onchange="status()" <?php echo $status;?> record_id="<?php echo $row['id']; ?>">
<a href="#edit<?php echo $row['id']; ?>" data-toggle="modal" class="btn btn-warning"><span class="glyphicon glyphicon-edit"></span> Wijzig</a>
<a href="#del<?php echo $row['id']; ?>" data-toggle="modal" class="btn btn-danger"><span class="glyphicon glyphicon-trash"></span> Verwijder</a>
<a class="btn btn-primary" href="view_page.php?user=<?php echo $user; ?>&page_order=<?php echo $row['page_order']; ?>" role="button">Bekijk</a>
<?php ?>
<?php include('button.php'); ?>
</td>
</tr>
<?php
}
PHP代码:
if($_POST['value']==1){ //as used variable name "value" in ajax post data
$query= mysql_query("UPDATE $user SET status = 1 WHERE id ='$_POST['record_id']'"); //query was incomplete and missing ";"
}
else{
mysql_query("UPDATE $user SET status = 0 WHERE id ='$_POST['record_id']'");"
}
AJAX:
$("#status").onchange(function(){
var value1 = document.getElementById("status").value;
var value2 = $('#status').data('record_id');
$.ajax({
type: "POST",
url: "status.php",
data: "{'record_id':'" + value1+ "', 'value':'" + value2+ "'}")
}
}
);
答案 0 :(得分:0)
data
的{{1}}选项不应为JSON,而应为URL编码的字符串或对象(jQuery将自动将其转换为URL编码的字符串)。
所以使用
$.ajax
即使它可能是JSON,您的格式也不正确-属性名称和字符串值必须用双引号而不是单引号。您不应该尝试通过串联字符串来创建JSON,而应使用data: { record_id: value1, value: value2 }
确保已正确编码。
您的括号没有正确平衡。
另一个问题是您有重复的JSON.stringify()
。 ID必须是唯一的。您应该将其更改为id="status"
,然后使用class="status"
来引用已单击的复选框。
this