如何设置织梦cms自定义表单字段为必填项
打开修改的文件:dede/templets/diy_field_addhtm 大概146 行,很明显已经注释掉,我们把注释去掉,
修改后如下图。改好后,保存即可!
修改的文件:dede/templets/diy_field_edithtm 大概在127行,很明显已经注释掉,我们把注释去掉,然后放到多选框下面,如图:
完成以上两步操作,在自定义表单中就有了联动类型选择了。
现在我们开始在织梦自定义表单中做城市二级三级联动
自定义表单实现后如下图:
先看织梦的联动类别管理,如下图:
点击地区后,向下拉,有3226条,全国各地包括港澳台都有的。另外我们也可以看到地区的组名,是nativeplace,后面我们要用到。
点击自定义表单,新建一个字段,名字填好你想要的,比如说户口所在地,下面的字段名称要填写nativeplace,选择联动类型,而且下面的默认值也要填写nativeplace,如下图:
点击确定,保存即可,然后就是前台的调用,这个就不多说了,相信会有织梦自定义表单的朋友都会吧。
上面说了怎么实现城市二级三级联动,但是大家提交后会问题又来了,城市名称只能输出数字枚举值,那么我们怎么让织梦自定义表单做城市二级三级联动,后台类型名称显示数字解决方法呢?
请转到下方:织梦自定义表单联动之城市表单名称只显示数字或枚举值的解决方法
织梦建站教程:http://wwwjianzhan119com/比如你有六个表单分两次提交:
<form action="diyphp">
表单一
表单二
表单三
submit后跳转到下一页,获取本次提交的id
</form>
下一页表单根据上次提交的表单id填充值为空的表单
<form action="diyphp">
表单四
表单五
表单刘
submit后直接显示成功
</form>
1编辑器打开\plus\diyphp
2在40行左右找到此行代码:
$dede_fields = empty($dede_fields) '' : trim($dede_fields);
3在这一行代码之下,加入代码,复制的话删掉代码中的空行
//增加必填字段判断
if($required!=''){
if(preg_match('/,/', $required))
{
$requireds = explode(',',$required);
foreach($requireds as $field){
if($$field==''){
showMsg('带号的为必填内容,请正确填写', '-1');
exit();
}
}
}else{
if($required==''){
showMsg('带号的为必填内容,请正确填写', '-1');
exit();
}
}
}
//end
4保存完成后,在表单模版页面找到这行代码:
1
<form action="/plus/diyphp" enctype="multipart/form-data" method="post">
在这行代码之下,加入代码:
1
<input type="hidden" name="required" value="数据字段名,数据字段名" />
注意这行代码要修改下,根据你的表单所需要设置的必填项,例如设置“姓名”、“邮箱”为必填项
添加新字段--“表单提示文字”:姓名--“字段名称”:name
添加新字段--“表单提示文字”:邮箱--“字段名称”:email
此行代码应为:
1
<input type="hidden" name="required" value="name,email" />
这样就把这两个选项设置为必填项了,如果没有填写就提交,会打开窗口提示“带号的为必填内容,请正确填写”,当然,这一句话可以改成其它的文字
网上看到另一种方法,未测试,仅作为资料收藏
js方法:
1先在要发布表单的模板上加
1
<script src='你的路径/jsjs' type="text/javascript"></script>
2在你自定义的路径新建文件jsjs,然后复制以下内容粘贴保存,代码:
<!--
$(document)ready(function()
{
//验证
$('#complain')submit(function ()
{
if($('#name')val()==""){
$('#name')focus();
alert("用户名不能为空!");
return false;
}
if($('#tel')val()=="")
{
$('#tel')focus();
alert("联系电话不能为空!");
return false;
}
if($('#title')val()=="")
{
$('#title')focus();
alert("标题不能为空!");
return false;
}
if($('#text')val()=="")
{
$('#text')focus();
alert("具体内容不能为空!");
return false;
}
})
});
-->
注:
$('#complain')submit(function () //complain为自定义表单的ID,如果生成的表单没有可以自行加上,即 id="complain"
if($('#name')val()==""){
$('#name')focus();//#name为要验证表单中的ID,如想让用户名不能为空,在后台用户名的数据字段名设为name,下同
3设置好后更新就可以看到效果了
希望本文所述对大家的dedecms建站有所帮助。
首先修改plus/diyphp,在:
if($fieldinfo[1] == 'textdata')
{
${$fieldinfo[0]} = FilterSearch(stripslashes(${$fieldinfo[0]}));
${$fieldinfo[0]} = addslashes(${$fieldinfo[0]});
}
后面添加:
if($fieldinfo[0] == 'time')
{
${$fieldinfo[0]}=date("Y-m-d H:i:s");
}
在自定义字段里添加字段
提交时间:time
字段名称一定要和diyphp添加的字段名一致,在表单中调取:
<input type="hidden" name="time" id="time" value="">
type='hidden' 为隐藏字段,在前端不显示,用户提交后台会自动获取时间
打开plus/diyphp,里面有这样一段代码:
if($dsql->executenonequery($query))
{
$id
= $dsql->GetLastID();
if($diy->public
== 2)
{
//diyphpaction=view&diyid={$diy->diyid}&id=$id
$goto
=
"diyphpaction=list&diyid={$diy->diyid}";
$bkmsg
= '发布成功,现在转向表单列表页';
}
else
{
$goto
= !empty($cfg_cmspath) $cfg_cmspath : '/';
$bkmsg
= '发布成功,请等待管理员处理';
}
showmsg($bkmsg,
$goto);
}
修改这里面的网址就OK了,当然如果要跳转到前一页面,除了需要将$goto后面的值进行修改,还有个文件需要修改下,具体操作是:
1、修改上面提法的:
$goto ='javascript:void(null)"';
2、打开include下commonfuncphp文件,找到
<a
href='http://wwwdedecmsmubancom/{$gourl}'>如果你的浏览器没反应,请点击这里</a>
,将这个修改为:
a href='http://wwwdedecmsmubancom/{$gourl}'
onclick='historygo(-1)'>如果你的浏览器没反应,请点击这里
OK了,以上就是修改织梦DEDECMS自定义表单跳转页面链接的方法。
0条评论