使用复选框和PHP更新MySQL数据库

巴诺德

我正在尝试使用复选框和PHP更新MySQL数据库。我在网上阅读了很多代码示例,并在此处阅读了许多问题,但我似乎陷入了最后的障碍。

我的代码首先查询MySQL,以获取用户列表,然后是每个用户旁边的复选框(在MySQL中为0或1),指示用户是否完成。

我想要做的是选中此复选框,以更新MySQL数据库并将列更新为1,如果未选中,则将其更改为2。

到目前为止,这是我的代码:

HTML代码段(复选框):

        while($row = mysqli_fetch_array($result))
    {
        echo "<tr>";
            echo "<td>" . $row['Firstname'] . "</td>";
            echo "<td>" . $row['Surname'] . "</td>";
            echo "<td>" . $row['Department'] . "</td>";
            echo "<td>" . $row['RequestedBy'] . "</td>";
            echo "<td>" . $row['StartDate'] . "</td>";
            echo "<td class='tbl-chk'> <input type='checkbox' name='WSCompleted' value='"; echo $row['ID'] . "'" ; if ($row['WSCompleted']=='1') { echo "checked='checked'";} echo "/></td>";

这是我的jQuery,可以成功检索值和ID,然后发布它们:

        $(document).ready(function(){
        $('input[name=WSCompleted]').click(function(){
            var wsCompleted = $(this).is(':checked') ? 1 : 0;
            var wsCompletedID = $(this).attr('value');

            $.ajax({
            type: "POST",
            url: "/usr-handler.php",
            data: {id: wsCompletedID, wsCompleted: wsCompleted},
            success: function(){
                $('div.success').fadeIn();
            }
        });
        return true;

        }); 
    });

最后,这是我的PHP的摘要:

$wsCompleted = $_POST['wsCompleted'];   
$id = $_POST['wsCompletedID'];

$query = "UPDATE newusers SET WSCompleted = '$wsCompleted' WHERE id = '$id'";

mysqli_query($con, $query) or die(mysqli_error());


mysqli_close($con);

我将复选框的值设置为MySQL中实际的行ID,然后可以使用复选框的值在MySQL中选择正确的行并进行更新。

我遇到的问题是,当前代码如何,我从FireBug收到以下响应:

身份不明的索引:WSCompletedID

在网上查看后,建议进行以下更改:

$id = $_POST['wsCompletedID'];

到:

$id = (ISSET($_POST['wsCompletedID']));

但是这样做可以清除错误消息,但实际上并不会在MySQL上更新该值。

如果我手动将$ id设置为某种值,则更新有效,但显然不正确,因为它只会将我选择的ID更新为该ID。

我完全为导致问题的原因感到困惑。我尝试过在线查找,但无法获得任何帮助。

任何帮助是极大的赞赏。

谢谢

里格斯愚蠢

您正在此处将数据加载到javascript AJAX代码中

data: {id: wsCompletedID, wsCompleted: wsCompleted},

这将创建以下$_POST数组

id => whatever was in wsCompletedID
wsCompleted => whatever was in wsCompleted

因此,您的PHP代码应在寻找中$_POST['id']$_POST['wsCompleted']因为这些是您在data:...

$wsCompleted = $_POST['wsCompleted'];   
$id = $_POST['id'];

$query = "UPDATE newusers SET WSCompleted = '$wsCompleted' WHERE id = '$id'";

mysqli_query($con, $query) or die(mysqli_error());
mysqli_close($con);

但是:您的脚本有遭受SQL注入攻击的危险,看看Little Bobby Tables发生了什么,即使您转义了输入,也不安全!使用准备好的语句和参数化的语句

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用复选框更新数据库

来自分类Dev

使用php中的复选框更新mysql数据库列中的值

来自分类Dev

如何使用复选框和html select的组合将多个记录插入mysql数据库

来自分类Dev

如何从Mysql数据库填充复选框?

来自分类Dev

使用PHP PDO更新复选框的数据库值

来自分类Dev

从网格视图更新数据库复选框

来自分类Dev

从复选框更新数据库

来自分类Dev

如何在使用jquery选中复选框时更新数据库?

来自分类Dev

通过使用Ajax单击不带提交按钮的复选框来更新sql数据库

来自分类Dev

通过复选框更改数据库更新

来自分类Dev

使用php中的复选框更新mysql数据库列中的值

来自分类Dev

从表中的数据库中选择复选框,然后使用PHP更新它

来自分类Dev

PHP多个复选框到数据库

来自分类Dev

使用复选框将数据从html表单存储到MySQL数据库

来自分类Dev

使用复选框从MySQL数据库删除行

来自分类Dev

如何从Mysql数据库填充复选框?

来自分类Dev

用mysql准备多个复选框数据库

来自分类Dev

使用众多复选框更新数据库

来自分类Dev

PHP复选框更新数据库,但没有下拉菜单

来自分类Dev

PHP / MySQL-复选框进入数据库

来自分类Dev

PHP将多个复选框和文本框数组插入MySQL数据库

来自分类Dev

选中复选框时,Ajax更新数据库

来自分类Dev

PHP - 复选框不会内爆并在数据库中更新

来自分类Dev

复选框和 MySQL 数据库与 PHP

来自分类Dev

如何使用 Flask 更新数据库中复选框的值

来自分类Dev

将复选框更新到mysql数据库中

来自分类Dev

更新数据库中的复选框值

来自分类Dev

使用复选框php将数据插入mysql数据库

来自分类Dev

使用复选框更新数据库中的状态 - Laravel

Related 相关文章

热门标签

归档