【问题标题】:Responsive Checkbox or Toggle for boolean value响应复选框或切换布尔值
【发布时间】:2014-12-07 01:30:50
【问题描述】:

我正在为我的网站制作一个 CMS,并且我的博客数据库中有关于博客文章是否可见以及是否启用 cmets 的列。

在我的表格中,我得到了

            <div class="input-group">
                <span class="input-group-addon">Comments</span>
                <input type="text" class="form-control" name="blogcomments" id="blogcomments" placeholder="1 or 0" required maxlength="1" value="<?php echo ($data['blog']->blogcomments)?>">
            </div>

因此,如果我正在编辑博客,它已经提取了该值,否则它只会显示占位符。然后我可以输入 1 或 0 并提交。

我想要做的是有一个复选框或一个切换开关(我正在查看引导开关),但我真的不确定如何实现它。我想我可以在 0 列中设置一个默认值并将复选框值设置为 1?不过我不太喜欢这个主意。

我也不知道如何检查现有值(如果有)并相应地设置复选框/按钮/任何内容(因此,如果列中的值已经为 1,则它已经被检查)。我猜此时我需要 javascript?

【问题讨论】:

    标签: javascript jquery html twitter-bootstrap forms


    【解决方案1】:

    使用下面的复选框:

    <div class="input-group">
      <span class="input-group-addon">Comments</span>
      <input type="checkbox" class="form-control" name="blogcomments" id="blogcomments" required value="1">
    </div>

    如果复选框被选中,则返回“1”,否则返回“null”。

    【讨论】:

    • 这就是我正在考虑的,但它不会像我当前的设置那样获得现有值,所以如果我正在编辑而不是创建,我将不知道发生了什么
    • 对不起,我不明白。 . .
    • 目前,如果我正在编辑一篇博文,它将显示现有设置,其值为 value="blogcmets)?>"我真的不知道如何使用复选框获得相同的效果(所以我基​​本上想要一种方法来检查它 if ($data['blog']->blogcmets) == 1)
    【解决方案2】:

    决定使用bootstrap-switch

                <div class="input-group">
                    <input type="hidden" value="0" name="blogcomments">
                    <input type="checkbox" name="blogcomments" id="blogcomments" value="1" <?php if($results['blog']->blogcomments == 1) echo 'checked'?>>
                </div>
    

    因此,将开关设置为“开”会给出值 1,如果该值已经是 1,它将添加选中的字段,所以我会在编辑博客时知道当前状态是什么。基本上我只是不知道“检查”的事情。此外,如果未选中该框,这将返回 0。如果你不这样做,正如另一个答案所说,它将返回 NULL 并且不会将 1 更改为 0。

    【讨论】:

      猜你喜欢
      • 2021-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-02
      • 1970-01-01
      • 2012-06-04
      • 1970-01-01
      相关资源
      最近更新 更多