wscore / ask
一个简单的HTML表单和验证器问卷构建器。
1.1.1
2020-06-24 03:31 UTC
Requires
- ext-mbstring: *
Requires (Dev)
- phpunit/phpunit: 8.0.4
This package is not auto-updated.
Last update: 2024-09-21 10:33:39 UTC
README
一个简单的HTML表单和验证器问卷构建器。
概述
安装
composer require wscore/ask
演示
要查看演示,打开终端并...
$ git clone https://github.com/WScore/AskQuestions $ cd AskQuestions $ composer install $ cd demo $ php -S localhost:8000
...然后在浏览器中查看 localhost:8000。
示例代码
要使用 WScore\Ask 组件,首先定义 AskModel。
定义问题
function buildAskForms() { $ask = new \WScore\Ask\AskModel(); $ask->addText('name', 'Your Name') ->setPlaceholder('Mr. Test Taro'); }
HTML表单
要在HTML文件中显示表单,
$ask = buildAskForms(); $forms = $ask->buildForm();
如果你使用Bootstrap 4,可能需要为输入和标签设置默认类。
$forms->setFormClass('form-control'); $forms->setLabelClass('form-label');
然后,在HTML表单中输出HTML表单,如下所示:
<form action="..." method="post">
<?php $element = $forms->getElement('name'); ?>
<?= $element->makeLabel(); ?>
<?= $element->makeForm(); ?>
验证输入
要验证输入,
$ask = buildAskForms(); $validator = $ask->buildValidator($_POST); $results = $validator->getResults(); // show some message. if ($validator->isValid()) { echo "<div class='alert alert-success'>Success!!!</div>"; } else { echo "<div class='alert alert-danger'>Error ???</div>"; }
然后,获取每个值的验证结果,如下所示:
<table class="table">
<?php $result = $validator->getResult('name') ?>
<tr>
<th><?= $result->label(); ?></th>
<td><?= $result->showValue('<br>'); ?></td>
<?php
if (!$result->isValid()) {
echo "<p class='error text-danger' >{$result->getMessage()}</p>";
}
?></td>
</tr>
<?php endforeach; ?>
</table>
高级
更多验证
默认验证只包含必填项检查。
使用闭包创建一个精细的验证方法;
$ask->setValidator(function (Validation $validation) { $name = $valication->getResult('name'); if (strlen($name) < 3) { $validation->setError('name', $name, 'must be longer than 2 characters.'); } });
待办事项
- 国际化错误信息。
