{dede:field name='addtime' function='GetDateMK(@me)'/}
;,5. 保存修改后的模板文件,然后保存表单设置;,6. 更新网站缓存,查看效果。在织梦CMS(DedeCMS)中,自定义表单是一个功能强大且灵活的工具,允许用户根据自己的需求创建各种类型的表单,默认情况下,织梦CMS的自定义表单并不会自动记录提交时间,这在某些情况下可能会给管理和查询带来不便,为了解决这个问题,可以通过手动添加代码的方式来实现自定义表单显示提交时间的功能。
方法一:通过修改表单模板文件
1、添加时间字段:
在织梦CMS后台,找到“核心” > “频道模型” > “自定义表单”,然后选择需要修改的表单。
点击“添加字段”按钮,添加一个新的字段,例如命名为“submit_time”。
在字段类型中选择“文本形式”(不要选择“时间类型”),这样可以避免字段被自动转换为时间戳格式。
2、编辑表单模板:
打开表单模板文件,通常位于/templets/default/
目录下的某个文件,如diy_list.htm
。
在表单中添加一个隐藏的输入框,用于保存当前时间:
“`html
<input type="hidden" name="submit_time" id="submit_time" value="" />
“`
添加一段JavaScript代码,用于在页面加载时设置隐藏输入框的值为当前时间:
“`javascript
<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("submit_time").value = str;
}
</script>
“`
3、保存并测试:
保存对表单模板文件的修改,并返回到织梦CMS后台,查看表单的预览或发布页面。
填写表单并提交,然后检查数据库中是否成功记录了提交时间。
方法二:通过修改plus/diy.php文件
1、添加时间字段:
同样地,在织梦CMS后台的自定义表单中添加一个名为“submit_time”的文本字段。
2、编辑plus/diy.php文件:
打开织梦CMS根目录下的plus/diy.php
文件。
在该文件中,找到处理表单数据的代码段,通常位于文件的中间部分。
在适当的位置(在处理其他字段值之后),添加以下代码来获取当前时间并将其赋值给“submit_time”字段:
“`php
$submit_time = date("Ymd H:i:s");
“`
确保将获取到的时间值正确地插入到数据库中。
3、保存并测试:
保存对plus/diy.php文件的修改,并返回到织梦CMS后台。
填写表单并提交,然后检查数据库中是否成功记录了提交时间。
注意事项
在修改任何文件之前,请务必备份原始文件,以防万一出现问题时能够恢复。
如果你不熟悉PHP或JavaScript编程,建议寻求专业人士的帮助或参考相关的教程和文档。
请确保你的织梦CMS版本是最新的,以便获得最佳的性能和安全性。
FAQs
1、为什么自定义表单默认不显示提交时间?
织梦CMS的设计初衷可能是为了让用户更自由地控制表单的行为和数据存储方式,默认不显示提交时间可以让用户根据实际需求来决定是否需要记录这个信息,从而提供了更大的灵活性。
2、如何验证自定义表单的提交时间功能是否正常工作?
你可以通过在表单中添加一个显示提交时间的字段来验证功能是否正常工作,在表单提交后,检查该字段是否显示了正确的提交时间,如果显示正确,则说明功能正常;否则,可能需要检查代码是否正确或是否存在其他问题。
步骤 | 描述 | 代码示例 |
1. 创建自定义字段 | 在织梦dedecms后台,自定义表单字段中添加一个日期或时间字段。 | input type="text" name="time" value="" readonly 或input type="datetimelocal" name="time" value="" readonly |
2. 获取当前时间 | 在表单提交处理脚本中获取当前时间。 | date = date("Ymd H:i:s"); |
3. 存储时间 | 将获取的时间存储在数据库的相应字段中。 | $dsql>ExecuteNoneQuery("UPDATE dede_archives SET submitdate='$date' WHERE aid=$aid"); |
4. 显示时间 | 在模板中显示提交时间。 | {dede:field name='submitdate'/} |
5. 修改字段类型(可选) | 如果需要显示更精确的时间,可以修改字段类型为日期时间。 | input type="datetimelocal" name="time" value="" readonly |
6. 时间格式化(可选) | 在模板中或处理脚本中对时间进行格式化。 | {dede:field name='submitdate' function='date="Ymd H:i:s", format="Ymd H:i:s"/' /} |
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1187246.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复