自定义表单通过ajax判断,提交不用跳转页面,提高用户体验。具体方法如下:

html表单代码部分,就提交按钮改成botton,,添加onclick事件

表单代码:

<form action="javascript:;" enctype="multipart/form-data" method="post">

<input type="hidden" name="action" value="post" />

<input type="hidden" name="diyid" value="1" />

<input type="hidden" name="do" value="2" />

<label>姓名:<input type="text" id="name" name="name" value="" /></label>

<label>电话:<input type="text" id="tel" name="tel" value="" /></label>

<label>手机:<input type="text" id="iphone" name="iphone" value="" /></label>

<label>邮箱:<input type="text" id="email" name="email" value="" /></label>

<table>

<tr>

<td valign="top">留言:</td>

<td><textarea id="liuyan" name="liuyan"></textarea></td>

</tr>

</table>

<input type="hidden" name="dede_fields" value="name,textchar;tel,textchar;iphone,textchar;email,textchar;liuyan,multitext" />

<input type="button" class="submit fr" value="提 交" onclick="add_ajaxmessage()"/>

</form>

js代码(这个代码之前一定要引入jQuery库):

function add_ajaxmessage(){

var name=document.getElementById("name");

var tel =document.getElementById("tel");

var iphone=document.getElementById("iphone");

var email=document.getElementById("email");

var liuyan=document.getElementById("liuyan");

//定义变量接收上面表单每项的值和几个dede隐藏的input的值

var dataString = 'name='+ name.value + '&tel=' + tel.value + '&iphone=' + iphone.value + '&email=' + email.value + '&liuyan='+ liuyan.value +'&action=post'+ '&diyid=1&do=2&dede_fields=name,textchar;tel,textchar;iphone,textchar;email,textchar;liuyan,multitext';

$.ajax({

type: "POST",

url: "/plus/diy.php", //提交到后台文件

data: dataString, //传值

success: function(data) {

alert(data);//成功打印PHP返回的值

}

});

return false;

}

php代码:

找到:if(!empty($dede_fields))

{

//在里面加入判断语句,不判断也可以

if($name==""){

echo "请填写您的姓名!";//注意:输出用echo输出,不要用showMsg();

exit();

}

}

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

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

这两句,改成:echo "提交成功!";

删掉下面这一句:showmsg($bkmsg, $goto);

以上就是本文章的内容,希望对大家有所帮助。

织梦自定义表单通过ajax提交的实现方法的更多相关文章

  1. dedecms(织梦)自定义表单后台显示不全 自定义模型当中添加自定义字段后在后台添加内容后不显示解决方案

    我们常用dedecms 自定义表单做留言功能.但是偶尔会遇到这样一个问题,就是 在前台提交表单后..后天显示不全.特别是中文字符  都不会显示, 比如下图: 这是因为  如果你织梦是gbk的话那就对了 ...

  2. 织梦自定义表单ajax提交范例

    function add_ajaxmessage(){ var dh = document.getElementById("tel"); //表单验证 if($("#te ...

  3. dedecms织梦自定义表单提交之后如何发送到邮箱!

    但是往往一些客户需要做一些提交信息到后台并发送到指定的邮箱. 一.直接打开plus下面的diy.php文件:  85行:$query = "INSERT INTO `{$diy->ta ...

  4. 织梦自定义表单导出为excel功能

    1.首先在后台修改/dede/templets/diy_main.htm <a href="../plus/diy.php?action=daochu&diyid={dede: ...

  5. 织梦cmsf表单提交到邮箱 织梦表单发送到邮箱 织梦自定义表单发邮箱

    大家在做织梦做网站开发时会遇到一个问题:织梦的自定义表单是一个很鸡肋的功能,不仅在后台展示得奇丑,而且也没有提醒功能,使用起来很不方便.很多人用织梦自定义表单时,都想用户提交表单的时候可以发送到自己的 ...

  6. 如何实现织梦dedecms表单提交时发送邮箱功能【已解决】

    我们通过织梦系统制作网站时,很多客户需要有在线留言功能,这时就会用到自定义表单.但是很多用户觉得经常登陆后台查看留言信息太麻烦了,于是想能否在提交留言是直接把内容发送到指定邮箱.网站经过测试终于实现了 ...

  7. DEDECMS织梦自定义表单中必填项、电话邮箱过滤以及验证码规则

    织梦自定义表单必填项规则--->(wwwshu-acca.com网站表单) 1. 在plus/diy.php 的第 40行下加如下代码: 1 2 3 4 5 6 7 8 9 10 11 12 1 ...

  8. jquery序列化from表单使用ajax提交返回json数据(使用struts2注解result type = json)

    1.action类引入struts2的"json-default"拦截器栈 @ParentPackage("json-default") //示例 @Paren ...

  9. dedecms织梦自定义表单发送到邮箱-用163邮箱发送邮件

    https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=monline_3_dg&wd=dedecms 邮箱&oq=d ...

随机推荐

  1. canvas制作原生的百分比圆形比例等

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  2. 为phpstorm安装右侧代码预览工具

    打开设置界面,进入到plugins页面,然后再搜索codeglance,然后点击安装即可.

  3. maven在eclipse上的配置

    1,安装maven,配置MAVEN_HOME 和 bin Path环境变量. 2,配置maven setting文件 <mirror>      <id>alimirrorId ...

  4. [转帖]select提高并发,select和poll、epoll的区别(杂)

    同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的.所以先限定一下本文的上下文. https://www.2cto.com/kf/20161 ...

  5. 每秒更新时间 v-text的应用 (解决闪现{}问题)

    有闪现<div id="app"> {{date}}</div> 无闪现<div id="app" v-text:date=&qu ...

  6. 基于JQuery的前端form表单操作

    Jquery的前端表单操作:     jquery提供了良好的方法封装,在一些基本的操作的时候,能节省很多的麻烦,其中,在具体使用时,form表单的数据提交是最频繁也最常见的前后数据交换方式,所以在前 ...

  7. java 重写你可以这么理解 因为 方法名和参数类型个数相同 所以这就是重写了 然后 因为是重写 所以 返回值必须相同

    java  重写你可以这么理解    因为   方法名和参数类型个数相同  所以这就是重写了    然后  因为是重写  所以  返回值必须相同

  8. 基于c的简易计算器一

    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <malloc.h&g ...

  9. Python教程:丛入门到实践

    一.特殊用法的函数 name = "python very good" print(name.title()) 方法是python可对数据执行的操作.每个方法后面都跟着一对括号. ...

  10. oracle exp导出加上过滤条件

    exp username/password@dbname   file='d:\hehe.dmp' tables=(%) query="""where UPDATE_DT ...