Ajax php pdo为每个数组更新复选框值到数据库但第二次面临错误

问题描述 投票:0回答:1

我试图发布但第二次遇到问题

当我们最初发布时,值正在数据库中正确更新,但是当我们添加新帖子并尝试发布时,所有数据库值都从'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();
}
php ajax checkbox pdo
1个回答
0
投票

我真的不明白你想要实现什么,但这是我认为你的代码错了。

$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。

© www.soinside.com 2019 - 2024. All rights reserved.