简体   繁体   English

为什么复选框无法更新数据库

[英]Why checkbox cannot update the database

I use PHP to echo the value from the database and it's work.我使用 PHP 来回显数据库中的值并且它的工作。 Then the problem occurs when I want to change "publicAccess" to "privateAccess" or "privateAccess" to "publicAccess".然后,当我想将“publicAccess”更改为“privateAccess”或“privateAccess”更改为“publicAccess”时,就会出现问题。 Why cannot post the value to update my database?为什么不能发布值来更新我的数据库?

This is my input.这是我的输入。

<label>
  <input type="hidden" value="<?php echo $row['id']; ?>" />
  <input type="checkbox" id="privacy" name="privacy" value="<?php echo $row['privacy']; ?>"
  <?php 
        if($row["privacy"]=='publicAccess')
        {
    echo "checked";
        }
        ?>
  >
  <span class="lever"></span>
  <span class="text">Private</span>
</label>

js js

<script type="text/javascript">
  $(document).ready(function() {
    $("#privacy").click(function() {
      var id = $(this).id();
      if ($(this).is(":checked")) {
        $.ajax({
          type: "POST",
          url: "privacy.php",
          data: { id: id, apply: "publicAccess" }
        });
      } else {
        $.ajax({
          type: "POST",
          url: "privacy.php",
          data: { id: id, apply: "privateAccess" }
        });
      }
    });
  });
</script>

privacy php隐私 php

<?php
include_once ("db.php");
if ($_POST['apply'] == 'publicAccess')
{
    $id = $_POST['id'];
    mysqli_query("update journal set privacy='publicAccess' where id='$id'") or die(mysqli_error());
}
else
{
    $id = $_POST['id'];
    mysqli_query("update journal set privacy='privateAccess' where id='$id'") or die(mysqli_error());
}
?>

Consider the following PHP/HTML.考虑以下 PHP/HTML。

<?php
echo "<input type='hidden' value='{$row['id']}' />\r\n";
echo "<input type='checkbox' name='privacy' class='private' value='{$row['privacy']}' " . ($row['privacy']=="publicAccess" ? "checked" : "") . "/>\r\n";
?>
<span class="lever"></span>
<span class="text">Private</span>

Then consider the following JavaScript.然后考虑下面的JavaScript。

$(function(){
  $("input.private").change(function(){    
    var id = $(this).prev("input").val();
    if($(this).is(':checked')){
      $.post("privacy.php", { id: id, apply: 'publicAccess' });
     } else {
       $.post("privacy.php", { id: id, apply: 'privateAccess' });
     }
  });
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM