表单项

YY框架的表单提交遵循简易原则,下面是一个简单的form表单示例:

<form action="new.html" method="post">{tk()}
<div class="form">
{$m->hidden('id')}
<div class="fields">
    <div class="field field-first">
        <div class="label">
            <label for="input-large">IP地址:</label>          
        </div>
        <div class="input" id="selarea">
        {$m->text('ip','class="medium"')}
        </div>
    </div>
    <div class="field">
        <div class="label">
            <label for="input-small">面板用户名:</label>
        </div>
        <div class="input">
        {$m->text('mbyhm','class="medium"')}
        </div>
    </div>
    <div class="field">
        <div class="label">
            <label for="input-small">面板密码:</label>
        </div>
        <div class="input">
        {$m->text('mbmm','class="medium"')}
        </div>
    </div>
        <div class="field">
        <div class="label">
            <label for="input-small">购买日期:</label>
        </div>
        <div class="input">
        {$m->date('gmrq','class="medium"')}
        </div>
    </div>
        <div class="field">
        <div class="label">
            <label for="input-small">用户到期日:</label>
        </div>
        <div class="input">
        {$m->date('yhdqr','class="medium"')}
        </div>
    </div>
        <div class="field">
        <div class="label">
            <label for="input-small">服务器到期日:</label>
        </div>
        <div class="input">
        {$m->date('fwqdqr','class="medium"')}
        </div>
    </div>
    <div class="field">
        <div class="label">
            <label for="input-small">系统用户名:</label>
        </div>
        <div class="input">
        {$m->text('xtyhm','class="medium"')}
        </div>
    </div>
    <div class="field">
        <div class="label">
            <label for="input-small">系统密码:</label>
        </div>
        <div class="input">
        {$m->text('xtmm','class="medium"')}
        </div>
    </div>
    <div class="field">
        <div class="label">
            <label for="input-small">淘宝用户名:</label>
        </div>
        <div class="input">
        {$m->text('tbyhm','class="medium"')}
        </div>
    </div>
    <div class="field">
        <div class="label">
            <label for="input-small">QQ号码:</label>
        </div>
        <div class="input">
        {$m->text('qq','class="medium"')}
        </div>
    </div>
    <div class="field">
        <div class="label">
            <label for="input-small">联系邮箱:</label>
        </div>
        <div class="input">
        {$m->text('lxyx','class="medium"')}
        </div>
    </div>
    <div class="field">
        <div class="label">
            <label for="input-small">服务器类型:</label>
        </div>
        <div class="input">
        {$m->text('fwqlx','class="medium"')}
        </div>
    </div>
    <div class="buttons">
        <button type="submit">数据提交</button>
    </div>
</div>
</div>  
</form>

视图中的$m即为控制器中定义的数据库模型。表单项的第二个参数是html元素的其他属性。可以是数组如:$m->text('fwqlx',array("class"=>"medium","length"=>"2"))也可以是字符串的形式如:$m->text('fwqlx','"class"="medium" "length"="2")

其中的tk()方法是开启表单令牌的声明,声明之后form中表单项自动开启加密,这样做可以有效的放置恶意数据的提交。 与此同时针对表单的重复提交也会被屏蔽。

注意:表单中的tk()方法必须紧跟form的起始标签之后,这样之后定义的表单项才会被加密。为了系统安全我们建议表单的提交都开启令牌支持。

表单项

表单项 对应html 备注
all <textarea></textarea>... 模型所有非空属性的表单集合(隐藏的)
text <input type="text"/> 文本输入
password <input type="password"/> 密码框
email <input type="email"/> 邮件输入框(html5)
range <input type="range"/> 程度选择框(html5)
hidden <input type="hidden"/> 隐藏标签
textarea <textarea></textarea> 文本框
checkbox <input type="checkbox"/> 多选按钮
select <select>...</select> 下拉框
radio <input type="radio"/> 单选按钮
date <input type="text"/> 时间选择
datetime <input type="text"/> 时间日期选择
texteditor <textarea></textarea> 富文本编辑器
color <input type="text"/> 颜色选择框
vercode <input type="text"/> 验证码输入框
upload <input type="file"/> 文件上传