> #### 自定义表单标签
> 适用范围:全站任意地方均可使用
> 标签作用:用于用户提交表单和调取表单记录
#### **1、使用步骤**
1)到后台”栏目管理>自定义表单“中添加表单
2)对新增的表单添加字段
3)到前台模板中新增form表单
>问:为什么自定义表单后台添加字段没有类型选择???
>答:表单中字段类型只不过是页面表现的形式,类型只需在前端模板中根据实际需要编写对应HTML表单字段类型即可,数据对于后端存储来说均为文本,SHANKECMF希望给前端开发者最大的开发自由,想什么类型模板说了算,这才是真正的前后端分离,那么SHANKECMF的表单其实给与了最大的灵活性和通用性。
#### **2、提交表单示例**
```
<form action="{shanke:form fcode=*}" method="post">
姓名(单行文本):
<input type="text" name="name" >
性别(单选类型):
<input type="radio" value="男" name="sex" >男
<input type="radio" value="女" name="sex" >女
爱好(多选类型):
<input type="checkbox" value="篮球" name="like[]" >篮球
<input type="checkbox" value="足球" name="like[]" >足球
省份(下拉类型):
<select name="province">
<option value="北京">北京</option>
<option value="上海">上海</option>
</select>
简介(多行文本):
<textarea name="description" ></textarea>
<button type="submit">提交</button>
</form>
```
表单提交方式为post,表单中提交的字段名称需要与后台自定义表单中添加的字段一致,否则会导致提交失败。
需要特别提醒的是,如果字段为多选类型,那么表单字段名称需要用中括号,比如选择爱好:
` <input type="checkbox" value="篮球" name="like[]" >篮球`
` <input type="checkbox" value="足球" name="like[]" >足球`
标签说明:
> {shanke:form fcode=\*} 为表单接收地址,fcode对应后台接收表单的编码
> 注意:此处与留言板的提交地址不可混淆,内置的留言表单使用专用地址{shanke:msgaction},其余自定义表单则按照此处规则定义提交地址。
#### **3、表单记录列表**
```
{shanke:formlist fcode=* num=*}
<p>姓名:[form:name]</p>
<p>公司:[form:company]</p>
<p>职位:[form:position]</p>
{/shanke:formlist}
```
调取的留言记录默认执行分页,使用内容列表的分页代码即可.
调取表单的内容的标签名称与自定义的表单字段一致。
控制参数:
> fcode=\* 表单编码,必填,用于控制调取的表单
> num=\* 数量,非必填,用于控制调取的记录分页大小
> page=\* 是否分页1或0,非必填,用于关闭分页
#### **4、表单记录列表可用标签**
[form:n]序号从0开始
[form:i]序号从1开始
[form:date]提交时间
[form:***]自定义的其它字段