提交表单时选中复选框

时间:2015-06-17 05:28:37

标签: javascript php jquery ajax checkbox

我的复选框有以下表格。

checked

如何在提交表单时让复选框保持{{1}}状态?

2 个答案:

答案 0 :(得分:1)

我假设您不希望同时检查doingdone,因此我将复选框替换为单选按钮,因为这是他们的预期行为。

我更改了单选按钮的名称和值,以便可以在PHP中轻松访问它们,并且从您提供的代码看起来看起来并不像以后那样使用名称和值。

我清理了标记和脚本布局,使其更具可读性。

如果我偏离原始代码的意图,请告诉我。

注意:这将显示已发布的值,但不会这些值保存到数据库中。

Demo

<?php
    include('connection.php');
    $sql = "SELECT * FROM `tbl`";
    $query = mysqli_query($connect,$sql);

    function get_checked ( $id ) {
        if ( isset($_POST) && isset($_POST['checked'][$id]) ) {
            return $_POST['checked'][$id];
        }
        return false;
    }
?>
<form method="post">
    <table border="2px">
        <thead>
            <tr>
                <th>ID</th>
                <th>Title</th>
                <th>Name</th>
                <th>Doing</th>
                <th>Done</th>
            </tr>
        </thead>
        <tbody>
            <?php while ( $res = mysqli_fetch_assoc ( $query ) ): ?>
                <?php $checked = get_checked ( $res['id'] ) ?>
                <tr>
                    <td><?= $res['id'] ?></td>
                    <td><?= $res['title'] ?></td>
                    <td><?= $res['name'] ?></td>
                    <td><input type="radio" name="checked[<?= $res['id'] ?>]" value="doing" <?= $checked === "doing" ? 'checked' : '' ?>></td>
                    <td><input type="radio" name="checked[<?= $res['id'] ?>]" value="done" <?= $checked === "done" ? 'checked' : '' ?>></td>
                </tr>
            <?php endwhile; ?>
        </tbody>
    </table>
    <input type='submit' value='OK' name='btn'>
</form>

答案 1 :(得分:0)

您可以尝试使用此代码。希望这可行(也尝试使用mysqli或PDO):

<?php
         include 'connection.php';
         $sql="SELECT * FROM `tbl`";
         $query=mysqli_query($connect,$sql);

            echo "<table border='2px'>
      <thead>
      <th>ID</th>
      <th>Title</th>
      <th>Name</th>
      <th>Doing</th>
      <th>Done</th>
       </thead>";
         echo "<form method='POST'>";
        echo "<tr>";
        $s=0;
        while($res=mysqli_fetch_assoc($query)){
        $id=$res['id'];
        $doing_v="";
        $done_v="";
        $c_doing="";
        $c_done="";

        if(isset($_POST['doing'][$s])){
        $doing_v=$_POST['doing'][$s];
        }

        if(isset($_POST['done'][$s])){
        $done_v=$_POST['done'][$s];
        }

        if($doing_v=='".$res['id'].$res['title'].$res['name']."'){
        $c_doing="checked";
        }

        if($done_v=='".$res['id'].$res['title'].$res['name']."'){
        $c_done="checked";
        }

              echo" <td>{$res['id']}</td>
               <td>{$res['title']}</td>
               <td>{$res['name']}</td>
        <td><input type='checkbox' name='doing[]'
        value='".$res['id'].$res['title'].$res['name']."' ".$c_doing." ></td>

               <td><input type='checkbox' name='done[]'  
         value='".$res['id'].$res['title'].$res['name']."' ".$c_done." ></td>
               </tr>";
               $s++;
               }

               echo "</table>";
               echo "<input type='submit' value='OK' name='btn'>";
               echo "</form>";
          ?>