在使用Dedecms CMS时,自定义表单是一个非常实用的功能。然而,很多时候我们可能会忽略一个细节——提交表单的时间记录。如果未能正确记录时间,这可能会给后续的数据处理带来不便。本文将详细介绍两种解决方法,帮助您在Dedecms自定义表单中添加时间字段。
一、JS动态获取当前电脑时间方法:
首先,在自定义表单中添加一个新的时间字段。我们可以将其命名为“shijian”,数据类型设置为单行文本(varchar)。接下来,在表单模板中插入以下代码:
<input type='hidden' name='shijian' id='shijian' placeholder="" >
<script type="text/javascript">
window.onload = function(){
var nowDate = new Date();
var str = nowDate.getFullYear()+"-"+(nowDate.getMonth() + 1)+"-"+nowDate.getDate()+" "+nowDate.getHours()+":"+nowDate.getMinutes()+":"+nowDate.getSeconds();
document.getElementById("shijian").value=str;
}
</script>
通过上述代码,每次用户提交表单时,系统会自动记录当前时间并存储到后台数据库中。
二、静态获取方法:
另一种方法是通过修改/plus/diy.php文件实现静态时间记录。打开该文件后,找到如下代码段(通常位于第69行左右):
if($fieldinfo[1] == 'textdata')
{
${$fieldinfo[0]} = FilterSearch(stripslashes(${$fieldinfo[0]}));
${$fieldinfo[0]} = addslashes(${$fieldinfo[0]});
}
在其下方添加以下代码:
if($fieldinfo[0] == 'shijian')
{
${$fieldinfo[0]}=date("Y-m-d H:i:s");
}
同样需要确保在自定义表单中添加了名为“shijian”的时间字段,并且数据类型为单行文本(varchar)。此外,在表单模板中加入隐藏输入框:
<input type='hidden' name='shijian' id='shijian' placeholder="" >
特别需要注意的是,许多用户在实施此功能时遇到问题,原因往往在于未将新增的时间字段添加到dede_fields项中。正确的做法应该是像这样:
<input type="hidden" name="dede_fields" value="name,text;tel,text;shijian,text"/>
完成以上步骤后,您的Dedecms自定义表单就能成功记录每个提交的准确时间了。这种方法不仅提高了数据管理效率,还为后续分析提供了更详尽的信息支持。