【问题标题】:PHP - Checkbox in table not returning any valuePHP - 表中的复选框不返回任何值
【发布时间】:2016-06-04 08:38:06
【问题描述】:

当我单击删除按钮时,未显示在表格中选中的那些复选框的值。假设根据 id 删除数据库上的记录,但我一直在获取复选框的值。请帮助更正我的代码。我正在使用引导程序来获取您的信息。

PHP

$sql = "SELECT id, title FROM box";
$query = mysqli_query($db, $sql);

if(isset($_POST['btnDelete'])) {
    $checkbox = isset($_POST['chkDelete']) ? $_POST['chkDelete'] : array();


    for($i=0;$i<count($checkbox);$i++)
    {
        $message = $checkbox[$i];
    }
}

HTML

<div class="content">
            <div id="table">
                <table class="col-md-12 table-bordered table-striped table-condensed cf">
                    <thead class="cf">
                        <tr>
                            <th></th>
                            <th>#</th>
                            <th>Title</th>
                            <th>Action</th>
                        </tr>
                    </thead>
                    <tbody>
                        <?php 
                            while($result = mysqli_fetch_array($query))
                            {
                                $html = '<tr>
                                            <td data-title="">
                                                <input name="chkDelete[]" type="checkbox" value="' . $result['id'] . '">
                                            </td>
                                            <td data-title="#">' . $result['id'] . '</td>
                                            <td data-title="Title">' . $result['title'] . '</td>
                                            <td data-title="Action">
                                                <a href="edit.php?id=' . $result['id'] . '">Edit</a>
                                            </td>
                                         </tr>';

                                echo $html;
                            }
                        ?>
                    </tbody>
                </table>
            </div>
            <form action="" method="POST">
                <input type="submit" name="btnDelete" value="Delete" />
            </form>
            <div class="message"><?php echo $message;?></div>
        </div> <!--//END content-->

【问题讨论】:

  • 复选框不在表单内,或者您没有明确表示该复选框应属于该表单。
  • 另外,每次迭代都会覆盖$message = $checkbox[$i];,所以它只包含最后一次迭代。

标签: php html forms checkbox html-table


【解决方案1】:

PHP(在for loop 中写入Delete Query 以删除所有checked 复选框。)

<?php

if(isset($_POST['btnDelete'])) 
{
  $checkbox = isset($_POST['chkDelete']) ? $_POST['chkDelete'] : array();
  $id = 0;
  for($i=0;$i<count($checkbox);$i++)
  {
    $id = $checkbox[$i];
    $deleteQuery = "DELETE FROM box WHERE id='$id'";
    $DeleteQueryExec = mysqli_query($db, $deleteQuery);
  }
}
?>

HTML(将整个table 放入&lt;form&gt;&lt;/form&gt;

<div class="content">
    <form action="" method="POST">
        <div id="table">
            <table class="col-md-12 table-bordered table-striped table-condensed cf">
                <thead class="cf">
                  <tr>
                    <th></th>
                    <th>#</th>
                    <th>Title</th>
                    <th>Action</th>
                  </tr>
                </thead>
                <tbody>
                <?php 
                $sql = "SELECT id, title FROM box";
                $query = mysqli_query($db, $sql);
                while($result = mysqli_fetch_array($query))
                {
                $html = '<tr>
                            <td data-title="">
                                <input name="chkDelete[]" type="checkbox" value="' . $result['id'] . '">
                            </td>
                            <td data-title="#">' . $result['id'] . '</td>
                            <td data-title="Title">' . $result['title'] . '</td>
                            <td data-title="Action">
                                <a href="edit.php?id=' . $result['id'] . '">Edit</a>
                            </td>
                         </tr>';
                echo $html;
                }?>
                </tbody>
            </table>
        </div>
        <input type="submit" name="btnDelete" value="Delete" />
        <div class="message"><?php echo $message;?></div>
    </form>
</div> <!--//END content-->

【讨论】:

  • 终于!感谢你们对我的帮助。效果很好!
  • 很高兴它成功了。 乐于助人 @xenazfire
猜你喜欢
  • 2020-12-19
  • 2012-12-26
  • 2021-10-08
  • 2015-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-13
  • 1970-01-01
相关资源
最近更新 更多