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为每个数组更新复选框值到数据库但第二次面临错误的主要内容,如果未能解决你的问题,请参考以下文章

更新选择列表而不刷新 [PDO/PHP/AJAX]

如何根据复选框更新数据库值? jQuery/php/ajax

ajax传多个值到div怎么传?

如何根据复选框更新数据库值? jQuery的/ PHP / AJAX

如何通过ajax从表单发送POST数据数组?

使用 PHP / PDO 更新表迭代数组 [重复]