首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在php中使用复选框多选

在php中使用复选框多选
EN

Stack Overflow用户
提问于 2013-12-12 14:23:11
回答 2查看 1.8K关注 0票数 0

我正在制作一个网站,其中我要嵌入删除使用多个复选框的功能。这是我的代码。我的问题是1. Ajax调用不起作用。2.如何从数据库中查找数组。

代码语言:javascript
代码运行次数:0
运行
复制
    <?php
if(isset($_POST['Delete']))
{
    $array=$_POST['check_box'];

    }
?>
<form method="post" id="form">
<table width="200" border="1">
  <tr>
    <td>select</td>
    <td>NAme</td>
    <td>Action</td>
  </tr>

  <?php
  while($selectnumberarr=mysql_fetch_array($selectnumber))
  {
  ?>
  <tr>

    <td><input type="checkbox" name="check_box[]" class="check_box" id="<?php $selectnumberarr[0]; ?>" /> </td>
    <td><?php echo $selectnumberarr[1]; ?></td>

  </tr>
  <?php
  }?>
  <input type="submit" name="Delete" id="delete">


</table>
</form>

下面是我的ajax和javascript代码。

代码语言:javascript
代码运行次数:0
运行
复制
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    $('#delete').click(function() {

        $.ajax({
            type: "POST",
            url: "checkbox.php",
            data: $('#form').serialize(),
            cache: false,
            success: function(html)
            {
                alert("true");
            }
        });//end ajax
    });
}); 
 </script>

任何帮助都会得到重视

EN

回答 2

Stack Overflow用户

发布于 2013-12-12 15:36:14

您的代码几乎是正确的。你需要去掉`onChange="show()“for input复选框,因为如果你有jquery,你就不需要把事件放在HTML元素上。

使用jquery 'on'方法来兼容最新的php库。

用下面的jquery代码替换你的jquery代码:

代码语言:javascript
代码运行次数:0
运行
复制
<script>
$(document).ready(function(){
  $('#delete').on('click',function()
  {

       var cat_id = $('.check_box:checked').map(function() {
           return this.id;
         }).get().join(',');
                 console.log(cat_id);

      $.ajax({
          type: "POST",
          url: "checkbox.php",
          data: { "kw ":cat_id },
          datatype:'json',
          success: function(html)
          {
              alert("true");
          }
      });//end ajax

  });
});
</script>

在jquery中使用".check_box“而不是"element”,以避免选中所有复选框,而不是选中所需的复选框。

希望能有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2013-12-12 14:50:59

为什么不使用数组来发送复选框,比如:

HTML部件:

代码语言:javascript
代码运行次数:0
运行
复制
<?php
if (isset($_POST['check_box'])) {
    var_dump($_POST['check_box']);
    echo "ajax call is working";
}
?>
<form id="form">
    <table width="200" border="1">
        <tr>
            <td>select</td>
            <td>NAme</td>
            <td>Action</td>
        </tr>

        <?php
        while ($selectnumberarr = mysql_fetch_array($selectnumber)) {
            ?>
            <tr>
                <td><input type="checkbox" name="check_box[]" class="check_box" value="<?php echo $selectnumberarr[0]; ?>" /> </td>
                <td><?php echo $selectnumberarr[1]; ?></td>

            </tr>
            <?php
        }
        ?>
    </table>
    <input type="button"name="delete" id="delete" value="Delete" />
</form>

JQuery部件:

代码语言:javascript
代码运行次数:0
运行
复制
<script type="text/javascript">
$(document).ready(function(){
    $('#delete').click(function() {

        $.ajax({
            type: "POST",
            url: "checkbox.php",
            data: $('#form').serialize(),
            cache: false,
            success: function(html)
            {
                alert("true");
            }
        });//end ajax
    });
}); 
</script>

所以你可以很容易的在php中得到一个选中的复选框数组:

代码语言:javascript
代码运行次数:0
运行
复制
$idsArray = $_POST["check_box"];

现在看起来是这样的:

代码语言:javascript
代码运行次数:0
运行
复制
array(
"1", "2","etc.."
);

因此,此数组包含要删除的选定复选框的所有ids。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20536427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档