【问题标题】:How to reproduce checked checkboxes when form is not submitted未提交表单时如何重现选中的复选框
【发布时间】:2016-03-30 19:28:29
【问题描述】:

我有一个带有多个复选框的表单,我想跟踪提交时选中了哪些复选框,这样当表单没有提交时,我仍然可以重现相同的复选框检查。

这是我的代码,以及到目前为止我在 cmets 中尝试过的代码:

<div class="control-group">                         
    <label class="control-label">Course</label>
    <div class="controls">
        <?php
        $sql="SELECT * FROM tbl_course";
        $st=$db->prepare($sql);
        $st->execute();
        while($coursers=$st->fetch(PDO::FETCH_ASSOC))
        {
            $rs=$coursers['course'];
            $idrs=$coursers['id'];
        ?>
            <label class="checkbox">
            <input type="checkbox" name="coursecheck[]" value="<?php
            echo $idrs; 
            ?> " 
            <?php
            /*   $array_name=compact($idrs);
                $_SESSION['assign']=ass($post['coursecheck']);
            if(in_array($array_name,$_SESSION['assign']))
            {
                "checked";
            } */ ?>
            />
            <?php echo $rs; ?>
            </label>
        <?php } ?>      
    </div>
</div>

【问题讨论】:

  • 您的问题完全不清楚。请阅读关于如何提出问题的常见问题解答stackoverflow.com/help/asking
  • @Khaja Kadar,欢迎来到 StackOverflow。我在您的代码中添加了介绍性文字,以解释您在注释掉的代码中所做的事情。最好总是问一个明确的问题(不仅在标题中),并清楚地解释你想要达到的目标。你不应该期望人们扫描你的代码来找出你真正想做的事情。

标签: php checkbox dynamic


【解决方案1】:

您在 cmets 中尝试的代码正朝着正确的方向发展。

您必须确保您已经创建了一个会话,并且您应该在每次提交表单时填充会话变量,以便您可以在表单未提交时重现检查。

注意你也可以写&lt;?= ?&gt;而不是&lt;?php echo ?&gt;

这是建议的代码(我没有重复div标签):

<?php
// make sure you have a session:
session_start();
// set the "coursecheck" session variable
if (isset($_post['coursecheck'])) {
    // form was submitted, take the checkbox checks
    $_session["coursecheck"] = $_post['coursecheck'];
} elseif (!isset($_session["coursecheck"])) {
    // we don't have the information, make empty array
    $_session["coursecheck"] = array();
}
$sql="SELECT * FROM tbl_course";
$st=$db->prepare($sql);
$st->execute();
while($coursers=$st->fetch(PDO::FETCH_ASSOC))
{
    $rs=$coursers['course'];
    $idrs=$coursers['id'];
?>
    <label class="checkbox">
    <input type="checkbox" name="coursecheck[]"
           value="<?=$idrs?>"
           <?=in_array($idrs, $_session['coursecheck']) ? "checked" : ""?>
    />
    <?= $rs ?>
    </label>
<?php
}
?>

【讨论】:

    猜你喜欢
    • 2014-04-04
    • 2013-01-21
    • 1970-01-01
    • 2011-02-26
    • 2012-05-23
    • 1970-01-01
    • 2018-06-16
    • 1970-01-01
    • 2023-02-17
    相关资源
    最近更新 更多