欢迎光临
我们一直在努力

dede自定义表单3个常见问题解决办法

本文章介绍dede自定义表单使用过程中,我自己出现的几个问题和解决办法,我用的dede是gb2312版,第一个问题是自定义表单时间字段在后台显示为一段数字,如何让它正常显示;第二个问题,自定义表后台列表不能显示中文数据的问题,实际已经写入数据库,但就是不显示,如何让他显示;第三个问题,简单的问题,如何判断必填项。

ok。。正文如下:

第一个问题:自定义表单时间字段在后台显示为一段数字;

我们前台提交的时间,程序会进行转换,成为了“时间戳”存在数据库中。然后我们要把数据(时间)调用出来就在相应的位置调用。但由于调用的时候,没有把时间戳转换成为正常的时间,所以导致了问题的产生。

解决办法:
我们需要在调用的地方,添加一段把时间戳转换过来的代码,就可以了。
修改dede/templets/diy_list.htm文件在42行
else后面加入如下代码:

if($fielddata[1]=='datetime')
 {
    $fields[$field] = GetDateTimeMk($fields[$field]);
 }

加上,时间就能正常显示了。。

第二个问题:自定义表后台列表不能显示中文数据的问题。
当输入英文字符和数字的时候,后台是可以正常显示的!但是中文数据就无法从数据库中读取出来了,即: 当输入中文的时候,后台不能显示中文数据,但是中文能提交到数据库,并且在数据库中,只是不能显示在织梦系统的自定义表单的后台。

解决办法:
1. 找到dede/templets/diy_list.htm  这个文件。
2. 做任何事情之前先备份, 把这个diy_list.htm文件先备份一个。
3. 大约在45行,或者搜索htmlspecialchars。原来的代码 为$fields[$field] =
htmlspecialchars($fields[$field]);
修改后的代码是$fields[$field] = htmlspecialchars($fields[$field],ENT_COMPAT,’GB2312′);

原因: htmlspecialchars这个函数默认的是utf-8的类型,但是在gbk的模式下,必须强制转换成gbk,所以后台不显示中文。

第三个问题:自定义表单必填项的设置方法——亲测

第一步,找到\plus\diy.php这个文件里,40行左右位置,找到 $dede_fields = empty($dede_fields) ? ” : trim($dede_fields); 这一段;

第二步,在这段代码之后加上如下代码,不需要任何修改,如果能看懂可以适当调整,不然就不要修改,添加后保存即可:

//增加必填字段判断 
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

第三步,在自己的自定义表单的发布的模板里,<form action=”/plus/diy.php” enctype=”multipart/form-data” method=”post”>这段代码之内加入
<input name=”required” type=”hidden” value=”数据字段名,数据字段名” />
注意这行代码要修改下,根据你的表单所需要设置的必填项,例如设置“姓名”、“邮箱”为必填项.
添加新字段–“表单提示文字”:姓名–“字段名称”:name
添加新字段–“表单提示文字”:邮箱–“字段名称”:email
此行代码应为:
<input name=”required” type=”hidden” value=”name,email” />
这样就把这两个选项设置为必填项了,如果没有填写就提交,会打开窗口提示“带*号的为必填内容,请正确填写”,当然,这一句话可以改成其它的文字.

赞(0)
未经允许不得转载:衡水seo博客 » dede自定义表单3个常见问题解决办法
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

建站优化更专业 更敬业 更负责

建站报价联系我们