> 万能表单跟留言模块(message)是相关联的,下面我就来详细介绍如何使用万能表单功能
留言表单
~~~
<form action="{fun U('message/index')}" onsubmit="return checkform()" method="POST">
<input name="tid" type="hidden" value="{$type['id']}" >
<div class="form-group"><label>*您的称呼</label><input name="user" id="user" class="form-control" type="text"></div>
<div class="form-group"><label>*您咨询的问题</label><input name="title" id="title" class="form-control" type="text"></div>
<div class="form-group"><label>*您的手机号</label><input name="tel" id="tel" class="form-control" type="tel"></div>
<!--后台新增的扩展字段在这里输出-->
<span id="ext_fields"></span>
<div class="form-group"><label>*问题描述</label><textarea name="body" id="body" class="form-control"></textarea></div>
<div class="form-group"><button class="btn btn-primary btn-block" type="submit">确定发送</button></div>
</form>
<script>
function checkform(){
var user = $.trim($("#user").val());
var title = $.trim($("#title").val());
var email = $.trim($("#email").val());
var tel = $.trim($("#tel").val());
var body = $.trim($("#body").val());
if(user==''){
alert('您的称呼不能为空~');$("#user").focus();return false;
}
if(title==''){
alert('您的咨询的问题不能为空~');$("#title").focus();return false;
}
if(tel==''){
alert('您的手机号不能为空~');$("#tel").focus();return false;
}
if(body==''){
alert('问题描述不能为空~');$("#body").focus();return false;
}
return true;
}
function get_fields(tid,id){
var id = arguments[1]?arguments[1]:0;
$.post("{fun U('Common/get_fields')}",{molds:'message',tid:tid,id:id},function(r){
var res = JSON.parse(r);
console.log(res);
if(res.code==0){
//默认 res.tpl输出的是layui的模板HTML,可以审核元素查看res里面的内容
//$("#ext_fields").html(res.tpl);
var html = '';
var len = res.fields_list.length;
if(len>0){
//根据对应的字段,进行HTML设计
for(var i=0;i<len;i++){
if(res.fields_list[i].field=='email'){
html+='<div class="form-group"><label>您的邮箱</label><input name="email" id="email" class="form-control" type="email"></div>';
}
}
}
$("#ext_fields").html(html);
}
});
}
$(document).ready(function(){
get_fields({$type['id']});
});
</script>
~~~
`$.post()`方法返回的`res.tpl`就携带了已经格式化的HTML内容,但是这个HTML是基于layui的,所以如果你要使用官方已经给你格式化的HTML,你需要借助layui,当然也可以自己自定义每个字段的输出HTML格式,也可以自己定制一套输出HTML的格式,这需要写个插件方法,覆盖(或者hook)掉`Home/CommonController.php`控制器下面的`get_fields`这个方法
- 引言
- 条款
- 开始使用
- 模板标签
- 公共配置
- 系统配置
- 自定义配置
- 网站栏目
- 全局栏目属性
- 导航栏相关
- 当前栏目下的直系下级
- 当前栏目下的直系上级
- 栏目详情页
- 栏目列表页
- 栏目分页
- 输出三级及三级以上栏目
- 当前位置面包屑
- 获取当前栏目的顶级栏目
- 直播讲解栏目相关
- 文章详情页
- 基本内容
- 点赞
- 收藏
- 相关文章
- 输出新增字段
- 商品详情页
- 基本内容
- 输出新增字段
- 商品图集
- 点赞
- 收藏
- *点评星星
- 加入购物车
- *评论
- 相关商品
- 自定义字段
- 原样输出
- 单选字段
- 多选字段
- loop标签
- 通用说明
- loop分页
- 案例说明
- like使用
- 怎么判断loop没有数据
- limit使用
- day参数
- table缺省参数
- 单选多选相关
- 单选字段输出
- 多选字段输出
- 特殊输出
- 输出换行
- 替换字符串
- 输出被解析的HTML原句
- 截取字符串
- 内容body去除HTML
- 分割字符输出
- foreach标签
- for标签
- fun标签
- php标签
- 不解析标签
- if..else..标签
- screen筛选标签
- 客户端判断
- 轮播图
- 友情链接
- 自定义图集输出
- Tags标签调用及使用说明
- 网站留言调用
- 自定义单页
- 系统架构
- 高级功能
- ajax数据交互
- ajax在栏目页的应用
- ajax在screen筛选中的应用
- screen多选筛选
- Message留言表单
- 万能表单
- 多语言支持
- 系统高级配置说明
- 网站动态链接
- 邮件发送
- 插件开发
- 控制器方法覆盖(cover)[简单]
- 控制器方法钩子(hook)[复杂]
- 制成后台安装插件
- 附录
- 时间
- 富文本编辑器导航
- 版本更新