【问题标题】:update query when check the checkbox with ajax使用 ajax 检查复选框时更新查询
【发布时间】:2018-07-24 21:07:45
【问题描述】:

我有一个复选框。 如果我选中或取消选中该复选框,则应使用 Ajax 调用运行更新查询。

如果选中复选框,则 1 应更新,如果取消选中,则 0 应更新。 但它不起作用。

复选框是:

<input type="checkbox" id="test_done" value="<?php echo $row1['id']; ?>" <?php if(($row1['test_done'])=='1') echo "checked='checked'"; ?> data-toggle="checkbox">

在上面的 $row1['id'] 和 $row1['test_done'] 是列名,它们来自另一个选择查询。

Ajax 是:

<script type="text/javascript">
  $(document).ready(function(){
    $("#test_done").click(function(){    
    var val = $(this).val();
         if($(this).is(':checked')){
         $.ajax({ type: "POST", 
         url: "test_done.php", 
         data: {val:val,apply:'1'} 

         });
         }
         else
         {
         $.ajax({ type: "POST", 
         url: "test_done.php", 
         data: {val:val,apply:'0'} 

         });

         }
      });
   });
 </script>

test_done.php 是:

include_once("connection.php");
if($_POST['apply']=='1')
{
$val = $_POST['val'];   
 mysql_query("update patient_package_details set test_done='1' where id='$val'") or die(mysql_error());
}
else
{
$val = $_POST['val'];   
mysql_query("update patient_package_details set test_done='0' where id='$val'") or die(mysql_error());
}

【问题讨论】:

  • 不要使用mysql* 函数进行数据库连接。这些函数在较新版本的 php.ini 中已被弃用。使用mysqli*PDO
  • 感谢您的回复和建议。但我的代码不起作用。
  • 你遇到了什么错误?
  • 当我点击复选框时,什么也没有发生。表示更新查询未执行。

标签: javascript php jquery mysql ajax


【解决方案1】:

您可以在复选框上使用change 事件而不是click 事件。检查复选框是否被选中然后发送 1 否则发送 0。在 php 端,因为我们发送两个值,所以你将使用 post 获得值。您无需检查 $_POST["apply"] 的值。我已经设置了apply 变量的值,所以只有一个查询可以工作。

$("input:checkbox").on("change", function () {
    var val = $(this).val();
    var apply = $(this).is(':checked') ? 1 : 0;
    $.ajax({type: "POST",
        url: "test_done.php",
        data: {val: val, apply: apply}
    });
});

test_done.php

include_once("connection.php");
$val = $_POST['val'];   
$apply = $_POST['apply'];   
mysql_query("update patient_package_details set test_done='$apply' where id='$val'") or die(mysql_error());

【讨论】:

  • 它只更新第一行。当我点击第二行复选框时,什么也没有发生
  • 我已经更新了答案。使用选择器$("input:checkbox") 而不是$("#test_done")
  • 我想知道一件事,mysqli或PDO哪个更好?
猜你喜欢
  • 1970-01-01
  • 2019-08-02
  • 1970-01-01
  • 1970-01-01
  • 2016-07-08
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多