php ajax用法
- 格式:docx
- 大小:37.57 KB
- 文档页数:3
PHP+AJAX教程(5):AJAX MySQL数据库实例AJAX 可用来与数据库进行交互式通信。
AJAX 数据库实例在下面的AJAX 实例中,我们将演示网页如何使用AJAX 技术从MySQL 数据库中读取信息。
在下拉列表中选择一个名字(测试说明:该实例功能未实现)在此列出用户信息。
此列由四个元素组成:MySQL 数据库简单的HTML 表单JavaScriptPHP 页面数据库将在本例中使用的数据库看起来类似这样:idFirstNameLastNameAgeHometownJob1PeterGriffin41QuahogBrewery2LoisGriffin40NewportPiano Teacher3JosephSwanson39QuahogPolice Officer4GlennQuagmire41QuahogPilotHTML 表单上面的例子包含了一个简单的HTML 表单,以及指向JavaScript 的链接:<html><head><script src="selectuser.js"></script></head><body><form> Select a User:<select name="users" onchange="showUser(this.value)"><option value="1">Peter Griffin</option><option value="2">Lois Griffin</option><option value="3">Glenn Quagmire</option><option value="4">JosephSwanson</option></select></form><p><divid="txtHint"><b>User info will be listed here.</b></div></p></body></html>例子解释- HTML 表单正如您看到的,它仅仅是一个简单的HTML 表单,其中带有名为"users" 的下拉列表,okooo澳客网这个列表包含了姓名,以及与数据库的"id" 对应的选项值。
HTTP是无状态、单向的协议,用户只能够通过客服端向服务器发送请求并由服务器处理发回一个响应。
若要实现聊天室、WEBQQ、在线客服、邮箱等这些即时通讯的应用,就要用到“ 服务器推送技术(Comet)”。
传统的AJAX轮询方式,客服端以用户定义的时间间隔去服务器上查询最新的数据。
种这种拉取数据的方式需要很短的时间间隔才能保证数据的精确度,但太短的时间间隔客服端会对服务器在短时间内发送出多个请求。
反转AJAX,就是所谓的长轮询或者COMET。
服务器与客服端需要保持一条长时间的请求,它使得服务器在有数据时可以返回消息给客户端。
html:view plaincopy to clipboardprint?1.<div id="msg"></div>2.<input id="btn" type="button" value="测试" />javascript:这里使用AJAX请求data.php页面获得…success‟的值,请求的时间达到80秒。
在这80秒中若没有从服务端返回…success‟则一直保持连接状态,直到有数据返回或…success‟的值为0才关闭连接。
在关闭连接后在继续下一次的请求。
view plaincopy to clipboardprint?1.$(function(){2.3.4. $("#btn").bind("click",{btn:$("#btn")},function(evdata){5. $.ajax({6. type:"POST",7. dataType:"json",8. url:"data.php",9. timeout:80000, //ajax请求超时时间80秒10. data:{time:"80"}, //40秒后无论结果服务器都返回数据11. success:function(data,textStatus){12.//从服务器得到数据,显示数据并继续查询13.if(data.success=="1"){14. $("#msg").append("<br>[有数据]"+data.text);15. evdata.data.btn.click();16. }17.//未从服务器得到数据,继续查询18.if(data.success=="0"){19. $("#msg").append("<br>[无数据]");20. evdata.data.btn.click();21. }22. },23.//Ajax请求超时,继续查询24. error:function(XMLHttpRequest,textStatus,errorThrown){25.if(textStatus=="timeout"){26. $("#msg").append("<br>[超时]");27. evdata.data.btn.click();28. }29. }30.31. });32. });33.34.});PHP:在这里是无限的循环,循环的结束条件就是获取到了返回结果返回Json数据。
花了两天时间。
研究AJAX,终于独立完成一个无限组的多级菜单联动功能。
主要特点:就是HTML静态页面可以无刷新的与PHP动态角本文件及数据库交互(这也是AJAX的核心目的)。
以下把代码贴出来。
供大家参考指正:ajax.js文件(位于根目录下js子目录)var xmlHttp;function createXmlHttp(){if(window.XMLHttpRequest){xmlHttp=new XMLHttpRequest();}else{xmlHttp=new ActiveXObject("Microsoft.XMLHttp");}}basic_inc.php(位于根目录下/include子目录下)<?php$DB_SERVER="localhost";$DB_NAME="ajax";$DB_USER="root";$DB_PASSWORD="";?>conn.php(位于根目录下/include子目录下)<?phprequire_once("dir_inc.php");require_once($ROOT_DIR."include/basic_inc.php");@ $db=mysql_connect($DB_SERVER,$DB_USER) or die ("faile!".mysql_error());@mysql_select_db($DB_NAME);?>dir_inc.php(位于根目标下/include子目录下)<?php$ROOT_DIR="../";?>select_menu.html(位于根目录下是核心前台文件)<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><title>select_menu</title><script type="text/javascript" src="js/ajax.js">//这里引用创建xmlHttp对像的文件(对浏览器做过判断)</script><script type="text/javascript">var targetSelId; //申明一个全局变量用来存放当前要操作的对像的IDvar selArray;//申明一个全局数组。
PHP18PHP与AJAX学习要点JavaScript实现AjaxjQuery实现AjaxJSONPHP的JSON函数JavaScript处理JSON数据JavaScript实现Ajax什么是Ajax搜狗地图百度搜索⾃动补全百度登陆验证百度⽤户注册验证使⽤Ajax的好处Ajax的特点:⽆刷新——不刷新整个页⾯,只刷新局部。
⽆刷新的好处1. 只更新部分页⾯,有效利⽤带宽2. 提供连续的⽤户体验3. 提供类似C/S的交互效果,操作更⽅⾯传统Web与Ajax的差异Ajax简介Ajax:异步刷新技术Ajax⼯作流程备注:XML/JSON/HTML是⽤来封装请求或响应数据的众多数据格式中的⼀部分。
还有如Script、JSONP、text等其他的数据格式。
XMLHttpRequestXMLHttpRequest是整个Ajax技术的核⼼,提供异步发送请求的能⼒。
创建XMLHttpRequest对象IE5和IE6 xmlHttpRequest=new ActiveXObject("Microsoft.XMLHTTP");其他浏览器 xmlHttpRequest=new XMLHttpRequest();XMLHttpRequest常⽤属性1.readystate: XMLHttpRequest的状态信息(就绪状态)2.onreadystatechange:指定回调函数3.status:HTTP的状态码 注意:就绪状态是4且状态码是200,⽅可处理服务器数据4.statusText :返回当前请求的响应状态5.responseText:获得响应的⽂本内容6.responseXML:获得响应的XML⽂档对象XMLHttpRequest常⽤⽅法⽅法说明open(String method[, String url[, Boolean async[, String user[, String password]]]])⽤于创建⼀个新的HTTP请求。
PHP+AJAX实现无刷新注册(带用户名实时检测)
很多时候,我们在网上注册个人信息,在提交完页面后,总得等待页面刷新来告诉我们注册是否成功,遇到网络差的时候,如果注册了一大串的东西,在经过漫长的等待页面刷新后,得到的确是“您的用户名已被使用”或XXX XXXX不合法,我想大家的心情一定特别不爽,今天就介绍个A JAX实现页面不刷新注册+实时检测用户信息的简单注册程序,希望对大家有所帮助。
好的,先看注册界面代码:
如图:
红色部分就是一会要调用的js函数了,当我们选定一个文本框后就会开始调用,现在我们看上面那个页面包含的ajaxreg.js文件的代码,里面就是包含了ajax框架和一些判断函数。
不难看出,数据是通过异步传输到checkuserreg.php接着回送回信息显示出来来达到实时检测用户名的目的,至于密码,只作了长度的实时判断,有兴趣的朋友可以扩充功能。
来看下checkuserreg.php到底都做了什么:
注释写的还算详细,大家应该都能看懂,再看信息合法后我们提交注册信息实现无刷新注册的PHP代码,se nduserinfo.php:
OK!!大功告成,来看看效果图:1.
2.
3.
4.
5.
怎么样?还不错吧,贴了这么多累死了,希望大家喜欢~~~~。
ajax格式及用法Ajax(AsynchronousJavaScriptandXML)是一种使用客户端脚本(通常是JavaScript)与服务器交互的强大技术。
通过Ajax,我们可以实现异步的、基于事件的、基于浏览器的数据请求,从而极大地提高了网页的交互性和响应性。
本篇文章将详细介绍Ajax的格式及用法。
一、Ajax请求格式Ajax请求的基本格式如下:`XMLHttpRequest对象.open(method,url,async,user,password);`其中,method表示请求方法,如GET或POST;url表示请求的URL;async表示是否异步请求,通常为true;user和password用于HTTP认证。
在请求中,我们通常会发送一些数据,这些数据可以以查询字符串的形式附加在URL之后,也可以作为POST请求的数据主体发送。
这些数据可以通过JavaScript对象来创建,或者从XML、JSON或其他数据源获取。
二、Ajax请求示例以下是一个简单的AjaxGET请求示例:`varxhr=newXMLHttpRequest();xhr.open("GET","data.json",true);xhr.onreadystatechange=function(){if(xhr.readyState==4&&xhr.status==200){//请求成功,将返回的数据处理成JSON格式并输出到consolevardata=JSON.parse(xhr.responseText);console.log(data);}};xhr.send();`在这个示例中,我们创建了一个新的XMLHttpRequest对象,并打开了到"data.json"的GET请求。
当请求状态改变时,我们检查请求是否成功,并使用JSON.parse将返回的文本转换为JSON格式。
php+ajax实现带进度条的⼤数据排队导出思路以及源码废话不多说,先上效果图:点击导出,实现点击导出统计完成之后点击确定下⾯来谈谈实现的思路:前⾯导出操作简单,从第⼆个导出操作开始:点击"确定"调⽤exportCsv函数复制代码代码如下:<a class="on" href="javascript:exportCsv();"><em>导出</em></a>exportCvs函数如下function exportCsv(){ //清除等待的转动圈$('#loading').html('');//弹出统计总数对话框,函数在后⾯给出定义tip();//ajax请求总数$.post("<?php echo WEB_URL;?>/index.php?q=onlinesea/getwherecount"+search_uri, function(json){var return_arr = eval('(' + json + ')');var num = return_arr['total'];var processnum = return_arr['processnum'];if(num == 0){poptip.title('系统消息');poptip.content('查询结果为空,不能进⾏数据导出');}else{poptip.close();for (var i in return_arr['cntarr']){if (return_arr['cntarr'][i] != 0){count_arr[i] = return_arr['cntarr'][i];}}var ii=0;for (var i in count_arr){type_arr[ii]=i;ii++;} //当数据不为空的时候弹出是否到处框exportCsvConfirm(num, processnum);}});}//弹出确认下载 exportCsvConfirm函数function exportCsvConfirm(num, processnum){var msg = '需要导出的数据有 <span style="color: red">' + num + '</span> ⾏,可能会占⽤您较多时间来进⾏导出。
1:首先将jquery文件导入到Public/Js目录下,新建一个custom.js 文件,如下图所示:2:add.html 页面:<script type="text/javascript"src="/Public/Js/jquery.js"></script> <script type="text/javascript"src="/Public/Js/custom.js"></script> <form action="/Student/insert"method="post"><div>学号:<input type="text"name="sno"id="sno" onblur="validateSno()"/><span id="info"></span></div><div>姓名:<input type="text"name="sname"/></div><div>年龄:<input type="text"name="sage"/></div><div>性别:<input type="radio"name="sgender"value="F"/>F<input type="radio"name="sgender"value="M"/>M </div><div><input type="submit"value="提交"/></div></form>数据库表:CREA TE TABLE `think_student` (`sno` varchar(10) NOT NULL,`sname` varchar(20) NOT NULL,`sage` tinyint(4) NOT NULL,`sgender` char(1) NOT NULL,PRIMARY KEY (`sno`)) ENGINE=MyISAM DEFAULT CHARSET=utf8;3:custom.js 页面:function validateSno(){$.post("/Student/validatesno",{sno:$("#sno").val()},function(returnedData,status){var result=returnedData;if(result!=null){$("#info").html("<fontcolor=red>"+result+"</font>");}else{$("#info").html("");}});}4:StudentAction.class.php/*** ajax 校验Student 的 sno是否存在*/public function validatesno(){$Student=M('Student');if($Student->find($this->_param('sno'))==null){ echo '';}else{echo '此学号已经存在!';}}5:结果页面。
jqueryajaxthinkphp异步局部刷新完整流程环境:ThinkPHP3.2.3,jQuery3.2前⾔:在⼀般的⽹站中,都需要⽤到jquery或者其他框架(⽐如angular)来处理前后端数据交互,thinkphp在后台也内置了⼀些函数⽤于数据交互(⽐如ajaxReturn())。
本⽂的⽬的是打通使⽤ajax在jquery和thinkphp之间的前后端数据交互过程。
正⽂:⼀、thinkphp关于ajax的介绍1.1 ajaxReturn:\Think\Controller类提供了ajaxReturn⽅法⽤于AJAX返回数据给客户端(视图、模板、js等)。
并且⽀持JSON、JSONP、XML和EVAL四种⽅式给客户端接受数据(默认JSON)。
(链接:)配置⽅式:convention.php中定义了默认编码类型为DEFAULT_AJAX_RETURN => 'JSON',分析:ajaxReturn()调⽤了json_encode()将数值转换成json数据存储格式,常⽤的数值是数组。
注意:The value being encoded can be any type except a resource(资源⽂件).All string data must be UTF-8 encoded.(链接:)举例:$data['status'] = 1;$data['content'] = 'content';$this->ajaxReturn($data);1.2 请求类型:系统内置了⼀些常量⽤于判断请求类型,⽐如:常量说明IS_GET 判断是否是GET⽅式提交IS_POST 判断是否是POST⽅式提交IS_PUT 判断是否是PUT⽅式提交IS_DELETE 判断是否是DELETE⽅式提交IS_AJAX 判断是否是AJAX提交REQUEST_METHOD 当前提交类型⽬的:⼀⽅⾯可以针对请求类型作出不同的逻辑处理,另外⼀⽅⾯可以过滤不安全的请求。
PHP AJAX用法详解
一、简介
AJAX(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
在PHP中,我们可以通过创建服务器端脚本来处理AJAX请求并返回数据,然后使用JavaScript来处理这些数据并更新网页。
二、PHP AJAX用法
1. 创建HTML表单
首先,我们需要创建一个HTML表单,用户可以在其中输入数据。
例如:
<form id="myForm">
<input type="text" name="name" id="name">
<input type="submit" value="Submit">
</form>
2. 创建PHP处理脚本
然后,我们需要创建一个PHP处理脚本来处理表单提交的数据。
在这个例子中,我们将简单地将用户输入的名字添加到一个数组中:
3. 使用JavaScript处理AJAX请求和响应
最后,我们需要使用JavaScript来处理AJAX请求和响应。
我们可以使用jQuery 的$.ajax()方法来发送AJAX请求:
在上面的代码中,我们首先阻止了表单的默认提交行为,然后获取了用户输入的名字,并将其作为数据发送到服务器。
当服务器返回数据时,我们在控制台中打印出这些数据。
三、注意事项
1. 确保服务器支持CORS,否则AJAX请求可能会失败。
可以通过在服务器端添加以下HTTP头来启用CORS:`Access-Control-Allow-Origin: *`。
2. 在使用AJAX时,需要确保你的网页已经加载了jQuery库。
如果没有,可以使用以下代码来加载jQuery库:
<script src="path_to_jquery"></script>。
3. 在处理AJAX响应时,需要确保你正确地解析了服务器返回的数据。
在上面的例子中,使用了JSON.parse()方法来解析服务器返回的JSON数据。
四、总结
PHP AJAX用法是一种强大的技术,可以使你的网页更加动态和交互性。
通过使用PHP处理服务器端的数据,并使用JavaScript处理客户端的数据,可以创建出非常复杂和功能强大的网页应用。