• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > PHP7留言板开发之 Ajax异步提交

PHP7留言板开发之 Ajax异步提交

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了PHP7,留言板开发,Ajax异步提交等相关知识,希望对您有所帮助

PHP7留言板开发之 Ajax异步提交


前言

这节教程算是这个专辑的重中之重吧。随着前端技术的不断迭代更新,网站很多功能的实现都转移到前端去实现,2018年第一季度编程语言排名来看,JavaScript仍然是最受欢迎的编程语言。所以想要深入学习js,那么Ajax是必不可少的。

Ajax异步的核心部分讲解

// 第一步 创建 XMLHttpRequest 对象,为了更容易理解,变量就用ajaxvar ajax = new XMLHttpRequest();// 第二步 初始化一个Ajax请求,url参数是远程请求地址ajax.phpajax.open('POST', url, true); // 这里用到post提交留言,所以用post方式提交给服务器// ajax.open('GET', url, true); // get方式请求服务器// 第三步 发送请求;如果该请求是异步模式(默认),该方法会立刻返回。ajax.send(inputdata);// 第四步 发送请求总该要知道有没收到吧,这里就需要用到Ajax的事件监听器onreadystatechange ajax.onreadystatechange = function(){    // 这里判断服务器是否有数据响应,如果有则做些你要处理的逻辑,比如提示用户操作成功}

上面四步骤还理解不了的话,可以认为是第一步找个朋友A发邮件,第二步给这位A朋友写信件内容并封装写上地址贴邮票,第三步投递邮件,过了一阵(当然网络通的情况下立即有响应的),第四步收到A朋友的回信了,很开心。接下来就可以根据回信内容做事啦,比如见(网)面(约)...

好了就到这里,下面是完整代码。

HTML+JS页面代码

<!DOCTYPE html><html>    <head>        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />        <title>留言板_科科分享</title>        <!-- 2.新建css样式文件并根据效果图编写css代码 -->        <link rel="stylesheet" href="feedback.css">        <!-- 3.js表单验证 -->        <script type="text/javascript">            function checkform(){                var nickname = document.getElementsByTagName('input')[0].value; // 获取用户输入的姓名                var tel = document.getElementsByTagName('input')[1].value; // 获取用户输入的联系方式                var content = document.getElementsByTagName('textarea')[0].value; // 获取用户输入的留言内容                // 如果没有输入姓名 则提示                if(nickname == ''){                    alert('请输入您的姓名');                    document.getElementsByTagName('input')[0].focus(); // 将光标定位到姓名输入框                    return false; // 阻止冒泡 输入姓名后才能通过                }                // 如果没有输入联系方式 则提示                if(tel == ''){                    alert('请输入您的联系方式');                    document.getElementsByTagName('input')[1].focus(); // 将光标定位到联系方式输入框                    return false;  // 阻止冒泡 输入联系方式才能通过                }                // 如果没有输入留言内容 则提示                if(content == ''){                    alert('请输入您的联系方式');                    document.getElementsByTagName('textarea')[0].focus(); // 将光标定位到留言内容输入框                    return false;  // 阻止冒泡 输入留言内容才能通过                }                // js已经拿到了用户提交的数据,那接下来就是AJAX(页面无刷新提交数据到服务器-异步通信)                // 异步请求 start                var ajax, url, inputdata;                // 创建 XMLHttpRequest 对象                if(window.XMLHttpRequest){                    ajax = new XMLHttpRequest();                }else{                    // 兼容Internet Explorer(IE5 和 IE6)使用 ActiveX 对象                    ajax = new ActiveXObject("Microsoft.XMLHTTP");                }                url = 'ajax.php';                ajax.open('POST', url, true);                ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");  // 用POST的时候一定要有这句                inputdata = 'nickname='+nickname+'&tel='+tel+'&content='+content;                ajax.send(inputdata);                // 接收服务器返回的数据                ajax.onreadystatechange = function(){                    // 获取服务器响应状态码                    if(ajax.readyState == 4 && ajax.status==200){                        // 获取服务器返回的响应返回的数据                        var retdata = ajax.responseText;                        if(retdata == 1){                            alert('留言信息已提交成功!感谢您的宝贵意见。');                        }                    }                }                // 异步请求 end                return false; // 这里是为了方式submit点击后表单自动提交                // document.feedback_form.submit(); // 提交用户数据到后端action中的地址            }        </script>    </head>    <body>        <!-- 工作区,呈现给用户看的 -->        <!-- 1.开始搭建脚手架 -->        <p class="container_box">            <p class="up">                <h3 class="title">留言板</h3>                <h5 class="subtitle">FEEDBACK</h5>            </p>            <p class="down">                <form name="feedback_form" action="/#" method="post" onsubmit="return false;">                    <p class="input">                        <input type="text" class="fl" name="name" placeholder="输入您的姓名" />                         <input type="text" class="fr" name="tel" placeholder="输入您的联系方式" />                    </p>                    <textarea class="content" cols="30" rows="10" name="nr"></textarea>                    <input type="submit" onclick="checkform()" value="提交您的留言" class="sub" />                </form>            </p>        </p>    </body></html>
PHP代码(ajax.php)
<?phpinclude 'config.php';// POST接收用户提交的数据$nickname = !empty($_POST['nickname'])? addslashes(strip_tags($_POST['nickname'])):''; // 留言人名称$tel = !empty($_POST['tel'])?addslashes(strip_tags($_POST['tel'])):''; // 留言人的联系方式$content = !empty($_POST['content'])?addslashes(strip_tags($_POST['content'])):''; // 留言内容$time = time(); // 当前系统时间,即用户留言时间// 插入mysql语句$sql = "INSERT INTO feedback (name, contact, content, addtime) VALUES ('{$nickname}', '{$tel}', '{$content}', '{$time}')";// 立即执行mysql语句$result = mysqli_query($mysqli, $sql); // 返回一个资源标识符,通常是数字$insert_id = mysqli_insert_id($mysqli); // 返回数据表的自增长ID,比如新用户注册返回用户ID// echo $insert_id; // 当你在调试的时候,你会发现echo是很好的帮手。if($insert_id > 0){    // 如果入库成功,这里可以处理其他想要的逻辑    echo 1;    exit;  // 退出程序,使其不再往下执行代码}// 这是错误的时候返回0echo 0;exit;

记得动手练习哦!欢迎下面评论区涂鸦!~


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • ThinkPHP3.2.3如何从php5升级到php7
  • MacOS下PHP7.1升级到PHP7.4.15的方法
  • Centos7下宝塔面板PHP7.3怎么安装sqlsrv扩展
  • 帝国cms更换php7环境后台空白
  • 为了使用邮箱服务,php7该如何配置sendmail
  • 分析PHP7.2忽略父类方法以及Liskov替换原则相关问题
  • PHP7如何使用set_error_handler和set_exception_handler处理异常机制
  • 了解优化PHP7性能的几个设置
  • Dedecms在php7下的一些常见问题
  • PHP7留言板开发之 Ajax异步提交

相关文章

  • 2022-04-29WordPress5.5后怎么平稳度过jQuery兼容问题
  • 2022-04-29宝塔面板如何屏蔽禁止某个IP(IP段)访问
  • 2022-04-29DEDECMS调用指定栏目图片标签代码
  • 2022-04-29Illustrator实例教程:抛光浮雕样式制作立体字
  • 2022-04-29分享Laravel模型使用的2个小技巧
  • 2022-04-29Wordpress如何调用个人信息
  • 2022-04-29Bootstrap中怎么实现加载效果?读取图标(Spinners)组件
  • 2022-04-29完美实现CSS垂直居中的11种方法
  • 2022-04-29掌握PHP删除数组中的空值的小技巧
  • 2022-04-29jquery怎么判断指定子元素是否存在

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • 百度蜘蛛是怎样来判断文章质量的?
    • vue中query和params的区别是什么
    • PhotoShop制作抽象背景立体3D字效果教程
    • Photoshop制作精致的橙色石纹立体字
    • DedeCMS V6 发布!织梦CMS V6 新版上线
    • curl获取结果乱码的解决方法
    • PHP如何将图片上传并替换?
    • 浅谈php正则替换函数preg_replace的用法
    • JAVA微信公众号开发TOKEN验证失败怎么办?
    • Alexa工具条真的能够提升Alexa排名吗?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有