使用AJAX更新mysql值表单复选框的值

时间:2018-08-09 12:23:37

标签: php mysql ajax

我在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+ "'}")  
    }
  }
 );

1 个答案:

答案 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