Ajax php pdo为每个数组更新复选框值到数据库但第二次面临错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Ajax php pdo为每个数组更新复选框值到数据库但第二次面临错误相关的知识,希望对你有一定的参考价值。
我试图发布但第二次遇到问题
当我们最初发布时,值正在数据库中正确更新,但是当我们添加新帖子并尝试发布时,所有数据库值都从'1(上一个值)更新为'0'
<button class="btn btn-secondry" id="publish">Publish</button>
$queryNum = $pdo->prepare("SELECT * FROM news where intNewsType= 0 ORDER BY intNewsId");
$postID = $row['intNewsId'];
<td><input type="checkbox" name="checkbox" class="checkbox" value="<?php echo $postID; ?>" /></td>
文件功能
$(document).ready(function(){
$("#publish").click(function() {
var data = [];
$('.checkbox').each(function() {
data[$(this).attr('value')]=$(this).prop('checked') ? 1: 0;
});
$.ajax({
type: "POST",
url: "publish.php",
data: {fields : data},
success: function() {
alert('Page published successfully!');
}
});
});
});
publish.php
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
foreach($_POST['fields'] as $key=>$val)
{
$sql = $pdo->prepare("UPDATE news SET intNewsType ='$val' WHERE intNewsId ='$key'");
$sql->execute();
}
答案
我真的不明白你想要实现什么,但这是我认为你的代码错了。
$queryNum = $pdo->prepare("SELECT FROM news where intNewsType=0");
从$postID = $row['intNewsId'];
上面的查询得到的值是1,当你在<input type="checkbox" name="checkbox" class="checkbox" value="<?php echo $postID; ?>" />
中使用它时,它会自动将每个复选框的值设置为1.当你从Jquery中检索值时,如果没有选中之前的文章,它将自动发送0而不是1。
以上是关于Ajax php pdo为每个数组更新复选框值到数据库但第二次面临错误的主要内容,如果未能解决你的问题,请参考以下文章
如何根据复选框更新数据库值? jQuery/php/ajax