PHP7教程介绍关于留言板开发的Ajax异步提交
前言
这节教程算是这个专辑的重中之重吧。随着前端技术的不断迭代更新,网站很多功能的实现都转移到前端去实现,2018年第一季度编程语言排名来看,JavaScript仍然是最受欢迎的编程语言。所以想要深入学习js,那么Ajax是必不可少的。
在前面课程讲过js验证,课件代码是在老友记之PHP7留言板开发(JS验证)基础上改动,只需加入ajax异步操作部分即可轻松完成。
需要注意的是,这里不再详细讲解什么是XMLHttpRequest对象,为什么要用它等等,相信你再能运用的情况下再去深入了解它会印象更加深刻,这里就尽可能的少一些文字类的应试教学并能达到学会效果。
打开编辑器开始动手吧!
Ajax异步的核心部分讲解
// 第一步 创建 XMLHttpRequest 对象,为了更容易理解,变量就用ajax var ajax = new XMLHttpRequest(); // 第二步 初始化一个Ajax请求,url参数是远程请求地址ajax.php ajax.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)
<?php include '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; // 退出程序,使其不再往下执行代码 } // 这是错误的时候返回0 echo 0; exit;
记得动手练习哦!欢迎下面评论区涂鸦!~
以上是PHP7留言板开发之 Ajax异步提交的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

Atom编辑器mac版下载
最流行的的开源编辑器

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

SublimeText3 Linux新版
SublimeText3 Linux最新版

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

记事本++7.3.1
好用且免费的代码编辑器