【DEDE】织梦dede如何添加“自定义表单”实现反馈信息、在线留言、在线订购、在线报名系统及标签怎么调用

【DEDE】织梦dede如何添加“自定义表单”实现反馈信息、在线留言、在线订购、在线报名系统及标签怎么调用

DEDE织梦cms常用的参数标签汇总、以及操作过程中的一些bug问题解决方法,dede网站二开,以下龙腾飞网络科技-小吴在建站实操中笔记记录,织梦dede建站教程保存使用非常方便:

【DEDE建站教程】

织梦dede如何添加“自定义表单”实现反馈信息、在线留言、在线订购、在线报名系统及标签怎么调用

做一些提交信息到后台或发送到邮箱的功能,以便于收集、统计、分析及处理更多的数据。比如:在线订单、在线报名、在线留言、反馈信息、在线订购等一些常见的互动应用。

问题:织梦dede如何添加“自定义表单”实现反馈信息、在线留言、在线订购、在线报名系统及标签怎么调用?

解决方法:使用织梦自带的织梦自定义表单即可实现

1、自定义表单管理

后台管理 - 核心 - 频道模型 - 自定义表单 - 增加新的自定义表单

1)填写这个表单的名称——添加名称——公开审核过的——确认——建立了表单;

2)选择管理——修改——添加新字段——添加名称,代码;

这个待会会调用前台别人要填的项目(数据字段可用首拼,数据类型一般写单行文本或多行文本,可以选下拉)——确定——因为刚刚点了“选择公开审核过的”所以能够点该表单的管理——前台预览——新页面打开——发布信息——右键源代码;

以下代码就是表单的代码调用的单页面

把内容

代码语言:javascript代码运行次数:0运行复制{dede:field.content/}改成或加上以下代码,调用好样式即可。

代码语言:javascript代码运行次数:0运行复制

称呼:

电话:

备注:

 

如果已有表单,提取以下“value”编号即可

代码语言:javascript代码运行次数:0运行复制修改后,可以选择屏蔽掉“公开审核过的”,选择[不公开],即使选错审核了也不会在前台公开。

还有就怎样把留言的信息调用出来,上面明白搞出来,下面就简单了。

代码语言:javascript代码运行次数:0运行复制{dede:loop table='dede_diyform1' sort='' row='10' if=''}

[field:ainixp/]

{/dede:loop}代码语言:javascript代码运行次数:0运行复制'dede_diyform1' 是要调用的表的名称

[field:dosxp/] 是你添加的表的字段名称要想无需审核,提交之后立刻显示,在增加新表单的“前台列表和内容页公开——”选项——完全公开”

【后续问题一】dedecms自定义表单提交成功如何返回当前页面

解决方法一:

自定义表单的数据,是提交到dedecms自带的plug下的diy.php文件进行处理,

代码语言:javascript代码运行次数:0运行复制$bkmsg = '发布成功,请等待管理员处理…';这里修改提交成功的信息。

plus/diy.php自带的代码,需要在

代码语言:javascript代码运行次数:0运行复制$bkmsg = '发布成功,请等待管理员处理…';这后面添加一段代码让他返回到当前页面,代码是

代码语言:javascript代码运行次数:0运行复制echo "";这样添加过后就可以了。

然后替换掉网站原来的文件,就可以实现表单提交过后返回当前页面。

最后的代码如下:

代码语言:javascript代码运行次数:0运行复制if($dsql->executenonequery($query))

{

$id = $dsql->GetLastID();

if($diy->public == 2)

{

//diy.php?action=view&diyid={$diy->diyid}&id=$id

$goto = "diy.php?action=list&diyid={$diy->diyid}";

$bkmsg = '发布成功,现在转向表单列表页…';

}

else

{

$goto = !empty($cfg_cmspath) ? $cfg_cmspath : '/';

$bkmsg = '发布成功,请等待管理员处理…';

echo "";

}

showmsg($bkmsg, $goto);

}解决方法二:

打开 plus/diy.php 文件

找到

代码语言:javascript代码运行次数:0运行复制$goto = !empty($cfg_cmspath) ? $cfg_cmspath : '/';

$bkmsg = '发布成功,请等待管理员处理…';

showmsg($bkmsg, $goto);改成

代码语言:javascript代码运行次数:0运行复制$goto = !empty($cfg_cmspath) ? $cfg_cmspath : '/';

$bkmsg = '发布成功,请等待管理员处理…';

showmsg($bkmsg, -1);【后续问题二】dede自定义表单防止多次提交

解决方法一:

代码语言:javascript代码运行次数:0运行复制if(!is_array($diyform))

{

showmsg('自定义表单不存在', '-1');

exit();

}再其下添加

代码语言:javascript代码运行次数:0运行复制//检测游客是否已经提交过表单

if(isset($_COOKIE['VOTE_MEMBER_IP']))

{

if($_COOKIE['VOTE_MEMBER_IP'] == $_SERVER['REMOTE_ADDR'])

{

echo "";

//*ShowMsg('您已经填写过表单啦','-1');//该项是直接跳到页面的,可能出现错误,可删除换成上面的代码*/

exit();

} else {

setcookie('VOTE_MEMBER_IP',$_SERVER['REMOTE_ADDR'],time()*$row['spec']*3600,'/');

}

} else {

setcookie('VOTE_MEMBER_IP',$_SERVER['REMOTE_ADDR'],time()*$row['spec']*3600,'/');

}此方法能够仿制初级用户重复提交,但是如果清除cookie的话还可以可以提交的。

解决方法二:测试后弹出已填过表单,同时也会再次弹出“提交成功”

根目录下的 /plus/diy.php 文件,大约在58行,

1、查找,修改成如下代码即可。

修改前:

代码语言:javascript代码运行次数:0运行复制 if(!empty($dede_fields))

{

$fieldarr = explode(';', $dede_fields);修改后:

代码语言:javascript代码运行次数:0运行复制 if(!empty($dede_fields))

{

session_start();

$cur_ip=GetIP();

if($cur_ip==$_SESSION['form_ip'])

{

echo "";

/*showmsg('Please do not repeat the submission','/',0,10000);exit;//会跳到另外一个页面,可删除*/

}

else

{

$_SESSION['form_ip']=$cur_ip;

}//防止表单重复提交

$fieldarr = explode(';', $dede_fields);修改完成后,可以防止dede自定义表单被重复提交。

【后续问题】织梦(dedecms)自定义表单,“必填项”设置方法

解决方法:

1、打开\plus\diy.php 文件,在40行左右

查找:

代码语言:javascript代码运行次数:0运行复制$dede_fields = empty($dede_fields) ? '' : trim($dede_fields);在下面加入代码:

代码语言:javascript代码运行次数:0运行复制//增加必填字段判断

if($required!=''){

if(preg_match('/,/', $required))

{

$requireds = explode(',',$required);

foreach($requireds as $field){

if($$field==''){

echo "";

/*showMsg('带*号的为必填内容,请正确填写', '-1');//跳转到另外页面了,删掉这条代码*/

exit();

}

}

}else{

if($required==''){

echo "";

/*showMsg('带*号的为必填内容,请正确填写', '-1');//跳转到另外页面了,删掉这条代码*/

exit();

}

}

}

//end2、在表单页面找到这行代码

代码语言:javascript代码运行次数:0运行复制

在下面加入代码:

代码语言:javascript代码运行次数:0运行复制注意这行代码要修改下,根据你的表单所需要设置的必填项,

例如:设置“姓名”、“邮箱”为必填项。

添加新字段--“表单提示文字”:姓名--“字段名称”:name

添加新字段--“表单提示文字”:邮箱--“字段名称”:email

此行代码应为:

代码语言:javascript代码运行次数:0运行复制这样就把这两个选项设置为必填项了。

如果没有填写就提交,会打开窗口提示“带*号的为必填内容,请正确填写”,这一句话可以改成其它的文字。

相关推荐

华为畅享9p当年价格多少
365bet备用在线

华为畅享9p当年价格多少

📅 08-25 👁️ 2154
關於則的成語有哪些,則的成語有哪些成語
正规的365网站平台

關於則的成語有哪些,則的成語有哪些成語

📅 09-13 👁️ 4407
TVB 北美免費APP 電視安裝指南
48365大写

TVB 北美免費APP 電視安裝指南

📅 07-27 👁️ 5291