在使用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自定义表单就能成功记录每个提交的准确时间了。这种方法不仅提高了数据管理效率,还为后续分析提供了更详尽的信息支持。