flsouto / htcheckb
该软件包最新版本(1.0.0)没有可用的许可证信息。
创建复选框字段
1.0.0
2017-02-16 01:06 UTC
Requires
- flsouto/htwidget: ^1.0
This package is not auto-updated.
Last update: 2024-09-23 17:12:17 UTC
README
此库用于创建复选框。
安装
使用composer
composer require flsouto/htcheckb
用法
以下示例实例化复选框类并渲染它
<?php use FlSouto\HtCheckb; require_once('vendor/autoload.php'); $checkbox = new HtCheckb("newsletter","Receive newsletter?"); echo $checkbox;
输出
<div class="widget 58a3990befc0e" style="display:block"> <label style="display:block" for="58a3990befc0e"> <input name="newsletter" type="checkbox" value="1" /> Receive newsletter?</label> <input type="hidden" name="newsletter_submit" value="1" /> </div>
额外的隐藏字段是一个提交标志,表示复选框是否已发送(即表单已提交)。在您有一个默认选中但用户取消选中的复选框的情况下,这是非常重要的。如果发生验证错误,表单必须再次显示,但复选框未选中(默认值被忽略)。
以下示例以只读模式渲染复选框(复选框按钮禁用)
use FlSouto\HtCheckb; require_once('vendor/autoload.php'); $checkbox = new HtCheckb("newsletter"); $checkbox->readonly(); echo $checkbox;
输出
<div class="widget 58a3990bf1a20" style="display:block"> <label style="display:block" for="58a3990bf1a20"> <input type="checkbox" disabled="disabled" /> Newsletter</label> <input type="hidden" name="newsletter" value="0" /> <input type="hidden" name="newsletter_submit" value="1" /> </div>
请注意,还会渲染第二个隐藏字段。这是因为当您禁用表单字段时,它不会被浏览器发送,并且在只读模式下,即使在只读模式下,也要保持数据状态在提交事件中的状态。
更改默认设置
默认情况下,复选框将"1"视为true,将"0"视为false。它还默认未选中(状态"0")。以下示例更改所有这些,使'true'表示'选中','false'表示未选中。它还将字段默认设置为选中
use FlSouto\HtCheckb; $checkbox = new HtCheckb('newsletter','Newsletter','true','false'); $checkbox->fallback('true'); echo $checkbox;
输出
<div class="widget 58a3990bf213b" style="display:block"> <label style="display:block" for="58a3990bf213b"> <input name="newsletter" type="checkbox" value="true" checked="checked" /> Newsletter</label> <input type="hidden" name="newsletter_submit" value="1" /> </div>
在以下示例中,我们将模拟一种情况,即表单已提交(请注意'newsletter_submit'标志的存在),但复选框键(即'newsletter')不存在。这意味着用户已取消默认选中复选框。因此,在这种情况下,复选框将渲染不带'checked'属性
$checkbox = new HtCheckb('newsletter','Newsletter','true','false'); $checkbox->fallback('true')->context(['newsletter_submit'=>1]); echo $checkbox;
输出
<div class="widget 58a3990bf2758" style="display:block"> <label style="display:block" for="58a3990bf2758"> <input name="newsletter" type="checkbox" value="true" /> Newsletter</label> <input type="hidden" name="newsletter_submit" value="1" /> </div>
最后但并非最不重要的是,我想向您展示复选框还可以表示假设数据库行状态,该行使用常见的Y/N模式来指示它是否活动。请注意,尽管告知默认选中,但复选框仍被渲染为未选中
// let's pretend this data was loaded from the database $row = ['active'=>'N']; $checkbox = new HtCheckb('active','Active','Y','N'); $checkbox->fallback('Y'); // check by default $checkbox->context($row); // set the form's state echo $checkbox;
输出
<div class="widget 58a3990bf2d4b" style="display:block"> <label style="display:block" for="58a3990bf2d4b"> <input name="active" type="checkbox" value="Y" /> Active</label> <input type="hidden" name="active_submit" value="1" /> </div>