欢迎来到六久阁织梦模板网!
用PbootCms的API接口制作Ajax无刷新留言

用PbootCms的API接口制作Ajax无刷新留言

浏览次数: 0

作者: 六久阁织梦模板网

信息来源: 未知

更新日期: 2022-04-03

文章简介

我们在制作模板的过程中,经常会使用到留言板等表单提交功能,常规的表单提交方式每次提交会有一个跳转,对访客不友好。有没有更好的UEO(用户体验)方案呢?有的,PbootCms有留言、表单的API接口,我们来做一个Ajax方式提交留言 。 实现过程 首先,写好表单

  • 正文开始
  • 热门文章

我们在制作模板的过程中,经常会使用到留言板等表单提交功能,常规的表单提交方式每次提交会有一个跳转,对访客不友好。有没有更好的UEO(用户体验)方案呢?有的,PbootCms有留言、表单的API接口,我们来做一个Ajax方式提交留言 。

实现过程

首先,写好表单的HTML代码。

<div class="form">
    <form action="" method="post">
        <div class="unit-group input">
            <div class="uk-grid">
                <div class="uk-width-1-2@m unit unit-left">
                    <input id="Contacts" class="tm-transition" type="text" name="contacts" placeholder="您的称呼:">
                </div>
                <div class="uk-width-1-2@m unit unit-right">
                    <input id="Home_contact_mail" class="tm-transition" type="text" name="home_contact_mail" placeholder="您的邮箱:">
                </div>
            </div>
        </div>
        <div class="unit-group textarea">
            <textarea id="Content" class="tm-transition" name="content" placeholder="请输入您想要跟我们说的话"></textarea>
        </div>
        <div class="uk-text-center unit-group button">
            <button class="tm-transition" type="submit">联系我们</button>
        </div>
    </form>
</div>

上面的代码其实不重要,关键就是表单的action留空,表单元素(input、tetxerea等)的name和后台的表单字段对应。

其他的就根据自己页面样式需求来写即可。

接下来是重点:

1、首先Ajax提交需要在表单的按钮点击的时候触发。

//.hengbok-home-contact button 就是表单中的button提交按钮

jQuery('.hengbok-home-contact button').on('click', function(){

    //执行代码

});

注:以下的代码都写在上面的执行代码中。

2、定义一些需要用到的变量。

var url  = '/api.php/cms/addmsg';    //Api的地址,我这里是留言接口,如果自定义表单的话填写表单接口

//定义data对象,默认包含appid,timestamp和signature

var data = {

        appid: '{@pboot:appid}',

        timestamp: '{@pboot:timestamp}',

        signature: '{@pboot:signature}',

    };

//定义一个空数组,用来储存表单提交过来的内容 

var parm = new Array();

//将表单提交过来的内容储存到数组中去

parm['contacts'] = jQuery('#Contacts').val();

parm['home_contact_mail'] = jQuery('#Home_contact_mail').val();

parm['content'] = jQuery('#Content').val();

//循环数组,将表单提交的内容添加到data对象中

for (var i in parm) {

    data[i] = parm[i];

}

请手动删除代码中的@符号,本站基于PbootCms搭建,加@符号防止解析

3、发起Ajax请求。

//通过第二步,构建了Api所需的url和data,接下来就可以发起Ajax请求了

jQuery.ajax({

    type: 'POST',        //提交的类型为 POST

    url: url,            //url地址为上面定义的url变量

    dataType: 'json',    //提交的数据类型为 json

    data: data,          //提交的数据为上面构建的数据

    //提交成功

    success: function( response, status ){

        //Api返回的内容,例如“留言成功”,“留言失败”等

        var Data = response.data;

        //如果成功,返回的code为1,失败返回0

        if( response.code == 1 ){

            //留言成功,向页面的DOM插入成功提示,更改样式。如果需要其他操作就自由发挥吧。

            jQuery('.status .text').text('感谢您的留言,我们会尽快跟您联系!');

            jQuery('.status').removeClass('error');

            jQuery('.status').addClass('open success');

            return false;

        } else {

            //留言失败,比如某个字段没有填写,返回XXX字段为空这样的提示。

            jQuery('.status .text').text( Data );

            jQuery('.status').removeClass('success');

            jQuery('.status').addClass('open error');

            return false;

        }

    },

    //提交失败,将信息输出到控制台查看

    error: function( xhr, status, error ){

        console.log( error );

    }

});

//Ajax提交后返回false,防止因为点击了表单的提交按钮造成的页面跳转。(实际上Ajax提交留言不一定需要form标签,不过写代码还是规范点比较好)

return false;

4、完善Ajax留言。

//因为Api没有验证码,并且PbootCMS默认也只是简单验证字段是否为空,所以在Ajax提交的时候稍微做一些简单的表单验证。

//验证表单字段是否为空,在“将表单提交过来的内容储存到数组”之前验证。

if( parm['xxx'] == '' ){

    jQuery('.status .text').text('请输入xxx。'); //如果为空的话,Api会默认返回一个提示语,不过在这里验证的话,可以自定义个性的提示语。

    //对DOM进行CSS操作

    jQuery('.status').removeClass('success');

    jQuery('.status').addClass('open error');

    //返回false,终止表单提交

    return false;

}

//验证邮箱格式,电话号码等。通过正则方式来验证访客输入的邮箱或者电话号码是否符合规范,返回提示。

if ( parm['home_contact_mail'] != '' ) {

    var reg = /^w+((-w+)|(.w+))*@[A-Za-z0-9]+((.|-)[A-Za-z0-9]+)*.[A-Za-z0-9]+$/;

    if( !reg.test( parm['home_contact_mail'] ) ) {

        jQuery('.status .text').text('您的邮箱格式不对,请检查。');

        jQuery('.status').removeClass('success');

        jQuery('.status').addClass('open error');

        return false;

    }

}

//验证留言内容长度

var ConLength = 15;    //定义内容至少输入的字符数量

//对留言内容长度和至少输入的字符数量进行比较

if( parm['content'].length < ConLength ){

    var MoreLength = ConLength - parm['content'].length;    //计算当前内容长度和至少输入的字符数量的差

    jQuery('.status .text').text('您想要说的就这么多吗?请再写 ' + MoreLength + ' 个字吧。');    //个性化提示访客还需要输入多少字符

    jQuery('.status').removeClass('success');

    jQuery('.status').addClass('open error');

    return false;

}

//验证两次留言的时间间隔,在时间间隔内不允许多次提交

//(1)、首先在Ajax留言成功的时候获取时间

var Time = Date.parse(new Date())/1000;

//(2)、将留言时间写入浏览器本地存储

localStorage.setItem('home_contact_time', Time);

//(3)、在进行Ajax提交之前获取button点击时的时间,并于浏览器本地存储的时间进行比较

var Interval    = 60;  //设置两次留言的时间间隔,单位:秒

var LastTime    = localStorage.getItem('home_contact_time');  //获取上次留言时间

var CurrentTime = Date.parse(new Date())/1000;  //获取当前时间

if( LastTime && ( CurrentTime - LastTime ) < Interval ){    //比较言时间

    var NextTime = Interval - ( CurrentTime - LastTime );   //获取需要N秒后才可以留言

    jQuery('.status .text').text('您的留言太频繁了,请您休息' + NextTime + '秒后再进行操作。');

    jQuery('.status').removeClass('success');

    jQuery('.status').addClass('open error');

    return false;

}

效果展示

image.png

转载请注明: 织梦模板 » 用PbootCms的API接口制作Ajax无刷新留言

标签: PbootCMS
  • pbootcms忘记后台密码-pbootcms后台密码遗忘,如何找回?
    阅读
    pbootcms是一款功能强大的内容管理系统,它为用户提供了方便快捷的网站建设和管理工具。由于各种原因,有时候我们可能会忘记pbootcms后台的登录密码,这给我们的网站管理带来了一定的困扰。那么,当我们忘记了pbootcms后台密码时,应该如何找回呢?本文将从...
  • pbootcms免费插件下载、pbootcms免费插件下载中心,助你快速获取所需插件
    阅读
    pbootcms是一款免费的内容管理系统,它提供了丰富的插件下载中心,为用户快速获取所需插件提供了便利。我将详细介绍pbootcms免费插件下载和下载中心的各个方面,帮助读者更好地了解和使用这个功能。 1. 插件下载中心的背景 在开始介绍pbootcms的插件下载中心...
  • PBOOTCMS容易被挂马—PBOOTCMS易被挂马,安全需加强
    阅读
    大家好,今天我想和大家聊一聊PBOOTCMS容易被挂马的问题。PBOOTCMS是一款功能强大的内容管理系统,但是在安全性方面却存在一些问题。本文将详细阐述PBOOTCMS容易被挂马的原因,并提出加强安全性的建议。希望能够引起大家对PBOOTCMS安全性的关注,以保护网站...
  • pbootcms页面不存在;pbootcms页面未找到:解决办法和常见错误,完美指南
    阅读
    你是否曾经遇到过在使用pbootcms时遇到页面不存在或未找到的问题?这个问题可能让你感到困惑和无助。不要担心!本篇文章将为你提供完美的解决办法和常见错误的指南,帮助你轻松解决这个问题。 1、数据库连接错误 在使用pbootcms时,页面不存在或未找到的一个...
  • pbootcms生成静态、pbootcms静态生成:高效实现网站静态化
    阅读
    pbootcms是一款高效的网站管理系统,它提供了静态生成的功能,可以帮助用户将网站内容快速生成静态页面。本文将详细介绍pbootcms生成静态、pbootcms静态生成的过程和优势,希望能引起读者的兴趣。 在互联网时代,网站的访问速度和用户体验是至关重要的。传统...
  • pbootcms漏洞处理-pbootcms漏洞处理:最全面的解决方案指南
    阅读
    PbootCMS是一款开源的内容管理系统,它提供了丰富的功能和灵活的扩展性,被广泛应用于各种网站开发中。就像其他软件一样,PbootCMS也存在一些安全漏洞,如果不及时处理,可能会导致网站被黑客攻击和数据泄露的风险。本文将为大家介绍PbootCMS漏洞处理的最全...
  • PbootCMS网站打不开,PbootCMS网站无法访问:解决方案大揭秘
    阅读
    在当今数字化时代,网站已经成为人们获取信息、交流和商业活动的重要平台。有时我们可能会遇到PbootCMS网站打不开或无法访问的问题,这给我们的工作和生活带来了困扰。本文将详细阐述PbootCMS网站打不开和无法访问的原因,并提供解决方案,帮助读者解决这一...
  • pbootcms更换模板方法,pbootcms模板更换方法详解
    阅读
    pbootcms是一款功能强大的开源内容管理系统,它提供了丰富的模板选择,让用户可以轻松更换自己喜欢的模板。本文将详细介绍pbootcms的模板更换方法,帮助读者了解如何进行模板更换,并提供一些实用的技巧和注意事项。 一、背景介绍 pbootcms是一款基于PHP+MyS...
  • pbootcms上传限制_pbootcms上传限制:解决大文件上传、格式限制等问题
    阅读
    PbootCMS是一款功能强大的内容管理系统,它不仅可以帮助用户轻松搭建网站,还提供了丰富的插件和模板,满足不同用户的需求。在使用PbootCMS时,我们可能会遇到一些上传限制的问题,比如无法上传大文件或者受到格式限制。本文将围绕这一主题展开,详细介绍Pbo...
  • pbootcms跳转到首页(pbootcms首页跳转指南)
    阅读
    1. 配置网站首页链接 我们需要在pbootcms后台进行一些配置,以便将网站首页链接添加到导航菜单中。登录pbootcms后台,点击“系统设置”->“菜单管理”,找到你想要添加首页链接的导航菜单,点击“编辑”按钮,在“链接地址”一栏中输入“/”,保存修改。这样...
收藏此文 打赏本站

如本文对您有帮助,就请六久阁织梦模板网抽根烟吧!

  • 支付宝打赏
    支付宝扫描打赏
    微信打赏
    微信扫描打赏
PbootCms百度小程序和微信小程序API封装教程
« 上一篇 2022年04月03日
PbootCms自定义分页制作自己常用的文章分页风格
下一篇 » 2022年04月03日

精彩评论

有问题在这里提问,阁主会为你解决!
  • 全部评论(0
    还没有评论,快来抢沙发吧!
推荐精品模板更多
律师事务所网站织梦dede模板(中英双语自适应模板)
更新时间:2019-11-07

人已经看过了!

HTML5高端企业通网站源码中小网络服务类织梦网站模板
更新时间:2021-10-21

人已经看过了!

网页模板/视频素材/图片分享/源码商城站长交易平台
更新时间:2017-08-10

人已经看过了!

织梦dedecms在线演示插件下载
更新时间:2020-06-06

人已经看过了!

中英双语窗帘门窗类网站织梦模板(响应式源码)
更新时间:2019-09-29

人已经看过了!

家具装修装饰织梦模板(带手机端)
更新时间:2018-04-26

人已经看过了!