php 留言板项目 ajax,PHP Ajax留言板
本案例代码已经提供下载,点击这里!
AJAX即“Asynchronous JavaScript and XML”(异步JavaScript和XML),AJAX并非缩写词,而是由Jesse James Gaiiett创造的名词,是指一种创建交互式。
Ajax的核心是JavaScript对象XmlHttpRequest。该对象在Internet Explorer 5中首次引入,它是一种支持异步请求的技术。简而言之,XmlHttpRequest使您可以使用JavaScript向服务器提出请求并处理响应,而不阻塞用户。
在本文的例子中,为了让初学者对ajax的实现原理有一个更加深刻的认识,没有使用jquery等框架,整个异步请求都是通过编写javascript来完成。
本例共包括3个文件,分别为:
config.php 连接数据库
message.php 用户访问的留言界面,当用户发送留言时,将留言结果以异步请求的方式发送到message_ajax.php。
message_ajax.php 处理来自message.php中的异步请求并返回结果
下面我按实际编写的步骤来说明:
创建数据库和表 为了让问题不至于变得复杂,这里我是在test数据库中创建了一个表t_message。SQL语句如下:
create table t_message(id int auto_increment primary key,email varchar(100),content text);
编写用户留言界面
留言界面非常简洁,就是一个表单,在message.php中添加以下html代码如下:
Leave Message Here Email:
Content:
异步请求
使用XMLHttpRequest对象发送请求的基本步骤如下: 创建一个XMLHttpRequest的引用 告诉XMLHttpRequest对象,哪个函数会处理XMLHttpRequest对象状态的改变,为此要设置onreadystatechange属性 指定请求的属性。open() 将请求发送给服务器。send() xmlHttp.responseText将响应提供为一个串
创建一个XMLHttpRequest的引用
var xmlHttp; function createXMLHttpRequest(){ if(window.ActiveXObject) { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } else if(window.XMLHttpRequest) { xmlHttp = new XMLHttpRequest(); }else{ alert("浏览器不支持XMLHttpRequest对象"); } }
创建查询字符串
function createQueryString(){ var email = document.getElementById("email").value; var content = document.getElementById("content").value; var queryString = "email="+ email + "&content="+ content ; //alert(queryString); return queryString; }
以POST方式发送异步请求
function doRequestUsingPOST(){ createXMLHttpRequest(); var url = "message_ajax.php?timeStamp=" + new Date().getTime(); var queryString = createQueryString(); xmlHttp.open("POST",url,true); xmlHttp.onreadystatechange = handleStateChange; xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;"); xmlHttp.send(queryString); }
处理状态变更,解析message_ajax.php返回的结果
function handleStateChange(){ if(xmlHttp.readyState == 4){ if(xmlHttp.status == 200){ parseResult(); //alert("OK"); } } } function parseResult(){ var responseDiv = document.getElementById("newmessage"); if(responseDiv.hasChildNodes()){ responseDiv.removeChild(responseDiv.childNodes[0]); } var responseText = xmlHttp.responseText;//document.createTextNode(xmlHttp.responseText); responseDiv.innerHTML = responseText; //responseDiv.appendChild(responseText); }
服务端处理异步请求
然后我们看下服务端message_ajax.php是怎样处理请求的
"; while($message = mysql_fetch_array($result)){ $onemessage = "
Email:".$message['email']."
Content:".$message['content']."";$responseText = $responseText.$onemessage;}$responseText = $responseText."";echo $responseText;?>
从上面代码可以看到,服务端首先需要接收客户端发送过来的请求,在本例中发送的参数就是email和content。
然后,服务端将这些数据保存到数据库中,并查询出数据库中最近的10条留言信息,构造成HTML字符串,并echo。
于是客户端便可接收到,实现无刷新显示最近的10条留言(当然需要留言超过10条的时候)。
如果你有神马问题,请留言讨论!
本文原创发布php中文网,转载请注明出处,感谢您的尊重!
php 留言板项目 ajax,PHP Ajax留言板相关推荐
- Django留言板项目完整搭建
Django留言板项目完整搭建 1.新建python虚拟环境 2.安装Django并新建Django项目 3.生成的目录说明 4.新建一些目录 1.进入虚拟环境的命令 2.可以用Django的命令来新 ...
- 使用ThinkPHP创建留言板项目
一.开发环境 1.Windows7 32位操作系统 2.Web服务器:Apache2.2 32位(Apache-2.2.17-win32-x86-openssl-0.9.8o.msi) 3.PHP:P ...
- ThinkPHP(3.2)搭建简单留言板项目
1.基本业务功能 >查看所有留言功能,index/index需要一个页面,用来展示当前应用程序中所有留言信息(默认页面). 展示形式:表格或者无序列表,这里用表格,方便些 >查看单条留言, ...
- php留言板只能留言一次,php如何实现留言板修改留言
php实现留言板修改留言的方法:首先连接数据库并选择指定的数据库:然后设置输出编码:接着记录表单提交的修改过的留言板内容:最后执行相应的sql语句即可. 数据库为notebook表为noteinfo留 ...
- 六十八、完成Vue项目推荐和周末游组件,并使用Ajax发起ajax请求
@Author:Runsen 2020/10/27. 周二.今天又是奋斗的一天. 写在前面:我是「Runsen」,热爱技术.热爱开源.热爱编程.技术是开源的.知识是共享的.大四弃算法转前端,需要每天的 ...
- js ajax 访问java函数,将url分配给Java EE项目中的ajax(js)函数
我正在Ajax中尝试使用我的第一个项目,并且在分配指向要从服务器中获取的文件的绝对URL时遇到问题.将url分配给Java EE项目中的ajax(js)函数 这是我的函数: function fetc ...
- java web 实践项目(搭建web留言系统)
声明:这是实践java的第二个项目,它主要包括以下知识: 前端:html css javascript 服务端: tomcat服务器,servlet ,jsp 后端:java 数据库:mysql 这个 ...
- jsp mysql留言板制作_Jsp+mysql 制作留言板
最近大致了解了下什么是JSP,然后制作了一個小的留言板,這里寫一點制作留言板的過程,希望能給大家幫助! 一.准備工作(安裝各種所需要用到的軟件) 2.tomcat 下載地址 3.mysql ...
- html简单留言板教程,JS实现简易留言板(节点操作)
本文实例为大家分享了JS实现简易留言板的具体代码,供大家参考,具体内容如下 今天的案例主要是对节点进行操作 创建节点.添加节点.删除节点以及为节点添加内容的操作. 就是一个简单的留言板功能,可以发布留 ...
最新文章
- 【Java】全站编码过滤器GenericEncodingFilter代码与配置
- 华为鸿蒙系统手机销量,两个品牌助力华为新生,但最终会是谁拯救谁
- Qtum量子链帅初受邀火星特训营面对面授课
- kernel devel 安装与卸载
- GDAL读写矢量文件——Python
- Win 2012 OS 安装.Net Framework 3.5
- 编写PhotoShop支持遥感图像数据
- 网络安全系统性学习路线「全文字详细介绍」
- 你真的会用微软输入法?
- SpringBoot开发常用技术这些你知道吗???
- 计算机视觉、图像处理学习资料汇总(转)
- 券商卖的雪球票息高,券商赚的什么钱?(雪球原理入门)
- docker下运行分布式代码报nccl错误:connect returned Connection timed out,成功解决
- RISCV 向量指令集和NICE接口学习笔记
- 浅谈单片机、ARM和DSP的异同
- npm install 提示 path xxx/node_modules/node-sass npm ERR command failed 解决方法
- Vue 中 props 传值,父组件向子组件传递对象/数组可以直接修改的问题
- 【Godot】节点的碰撞与碰撞掩码的计算
- Easypoi模版导出excel
- 主DNS、辅助DNS、缓存DNS和基于CDN的利用DNS服务器实现负载均衡