复选框提交以显示文本?

时间:2015-11-23 19:06:39

标签: checkbox concrete5

提前感谢您的帮助。

我在Concrete5中创建了办公时间块。某些部门在某些日子没有开放,所以我试图制作一个复选框,如果选中则显示“已关闭”而不是办公时间。这是星期日的一个例子:

    <div class="form-group">
    <?php  echo $form->label("Sundayclosed", t("Sunday (close)")); ?>
        <?php  echo (isset($btFieldsRequired) && in_array('Sundayclosed', $btFieldsRequired) ? '<small class="required">' . t('Required') . '</small>' : null); ?>
            <?php  echo $form->text("Sundayclosed", $Sundayclosed > 0 ? date("g:i A", $Sundayclosed) : null, array ('autocomplete' => 'off', )); ?>
</div>

我的代码工作并显示块中设置的打开和关闭时间。但是,我不知道如何添加一个复选框来显示“已关闭”,而不是在块中设置的时间。

有人会介意帮我吗?非常感谢你!

1 个答案:

答案 0 :(得分:0)

如果我很清楚你提供的那段代码,那就是你输入周日关闭时间的文本框,你想要的是一个复选框,在文本框的顶部,没有代替它,表示该商店在周日关闭,并显示&#34;已关闭&#34;在您的网站上关闭。

首先,在您的区块设置中,您需要添加复选框:

<?php  echo $form->label("SundayTotallyClosed", t("Sunday (totally close)"));

echo $form->checkbox("SundayTotallyClosed", 1, $SundayTotallyClosed); ?>

然后在您的街区视图中,您希望&#34;关闭&#34;显示:

<?php if ($SundayTotallyClosed) {
    echo "Closed";
} else {
    // put here the code that normally shows the closing time
}

保存设置时要小心,复选框只有在选中后才会发送要保存的值,否则不会发送任何内容。问题是如果您选中并保存它,则保存值1。如果稍后取消选中并保存,则不会发送任何内容,因此不会保存任何内容,因此值仍为1.

保存时处理这个问题的方法是确保你有:

$SundayTotallyClosed = SundayTotallyClosed ? 1 : 0;

然后正常保存