PHP+AJAX教程(5)-AJAX MySQL数据库实例
- 格式:docx
- 大小:16.53 KB
- 文档页数:3
div 部分用于显示来自服务器的信息。
当按钮被点击时,它负责调用名为loadXMLDoc() 的函数:<html><body><div id="myDiv"><h3>Let AJAX change this text</h3></div><button type="button" onclick="loadXMLDoc()">Change Content</button></body></html>接下来,在页面的 head 部分添加一个 <script> 标签。
该标签中包含了这个loadXMLDoc() 函数:<head><script type="text/javascript">function loadXMLDoc(){.... AJAX script goes here ...}</script></head>AJAX - 创建 XMLHttpRequest 对象∙Previous Page∙Next PageXMLHttpRequest 是 AJAX 的基础。
XMLHttpRequest 对象所有现代浏览器均支持 XMLHttpRequest 对象(IE5 和 IE6 使用ActiveXObject)。
XMLHttpRequest 用于在后台与服务器交换数据。
这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。
创建 XMLHttpRequest 对象所有现代浏览器(IE7+、Firefox、Chrome、Safari 以及 Opera)均内建XMLHttpRequest 对象。
创建 XMLHttpRequest 对象的语法:variable=new XMLHttpRequest();老版本的 Internet Explorer (IE5 和 IE6)使用 ActiveX 对象:variable=new ActiveXObject("Microsoft.XMLHTTP");为了应对所有的现代浏览器,包括 IE5 和 IE6,请检查浏览器是否支持XMLHttpRequest 对象。
花了两天时间。
研究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;//申明一个全局数组。
参数类型说明url 为string(因此要⽤引号引起来)发送请求的地址type string请求的⽅式:post或get请求。
默认为get请求data Object或string发送服务器的数据,键值对,字符串或对象,这⾥post请求有此参数,get请求直接在地址处?后⾯传参即可dataTypestring后端返回给前端的数据类型,⽐如html,xml,json。
本来是string,在ajax请求时设置dataType为json,将字符串;类型变为json类型succ ess function请求成功后调⽤的回调函数,需要操作的东西⼀般在这⾥写⽤法success:function(e 这个字母e可以是其他英⽂){写内容} 注意这个()⾥⾯的e或者说其他东西就是后端HttpResponse或者JsonResponse返回的东西,这⾥与dataType有关error function请求失败时调⽤的回调函数asyn c Boolean是否异步处理,默认为True,false为同步处理ajax--实现异步请求,接受响应及执⾏回调ajax最⼤的优点是在不重新加载整个页⾯的情况下,可以与服务器交换数据并更新部分⽹页的内容ajax指是⼀种创建交互式⽹页应⽤的⽹页开发技术,其实就是实现前后端交互。
1)ajax是异步javascript,异步的意思即⾮阻塞,就像线程,在代码运⾏到ajax请求时,它会分成两条线,⼀条线去运⾏ajax请求⾥⾯的内容,另⼀条线去运⾏主程序(即ajax请求后⾯的代码),当然我们可以因需要异步设置成同步(即在运⾏到ajax请求时,将阻塞运⾏完ajax请求后,再去运⾏ajax外,后⾯的代码)2)注意ajax请求是由jquery发起的,因此⽤于jquery代码块中。
3)执⾏相应的视图函数(这⾥是在⼀个py,php等⽂件中创建⼀个视图函数,或者class类,给这个视图函数分级设置⼀个url地址,ajax请求中的url即填写这个完整的url地址),返回json内容。
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+MySQL数据库编程的步骤第⼀步:PHP连接MySQL服务器第⼆步:选择当前要操作的数据库第三步:设置请求或返回的数据的字符集第四步:执⾏各种SQL语句。
⼀.PHP连接MySQL服务器PHP连接Mysql的⽅法有很多(也是php不断更新带来的后果),我就列下以下⼏种连接⽅法:1、使⽤ mysql ,提⽰:此种⽅法官⽅不建议才,官⽅提⽰:will be removed。
$con = mysql_connect("localhost","root","");if (!$con){die('Could not connect: ' . mysql_error());}mysql_close($con);2、使⽤ mysqli(分过程式与对象式两种)Success... localhost via TCP/IP :$link = mysqli_connect('localhost', 'root', '', '007online');if (!$link) {die('Connect Error (' . mysqli_connect_errno() . ') '. mysqli_connect_error());}echo 'Success... ' . mysqli_get_host_info($link) . "\n";mysqli_close($link);3、使⽤PDO 可以⽤$db = new PDO('mysql:host=localhost;dbname=007online', 'root', '');try {foreach ($db->query('select * from 007_class_news') as$row){print_r($row);}$db = null; //关闭数据库} catch (PDOException $e) {echo$e->getMessage();}4、其他(使⽤ ADODB 等) ,详细操作传送门:/zimin1985/article/details/18732505require_once 'adodb.inc.php';$conn = &ADONewConnection('mysql');$conn->connect('localhost','root','','007online');$conn->Execute("set names utf8");$res = $conn->Execute("select * from 007_class_news");if (!$res){echo$conn->ErrorMsg();}else{var_dump($res);}⼆.常⽤词语(以下⽤mysqli_xxx)PHP连接MySQL服务器1.mysqli_connect() 定义和⽤法:函数打开⼀个到 MySQL 服务器的新的连接。
PHP数据库操作详解第一章:介绍PHP是一种用于开发动态网站的脚本语言,而数据库操作是动态网站开发中非常重要的一部分。
数据库操作能够实现数据的存储、检索、修改和删除等功能,为网站提供强大的数据支持。
本文将详细介绍PHP数据库操作的相关知识。
第二章:数据库连接要进行数据库操作,首先需要与数据库建立连接。
在PHP中,可以使用MySQLi或PDO扩展来实现数据库连接。
MySQLi是MySQL的官方扩展,而PDO是PHP的数据库抽象层,支持多种数据库。
本章将详细介绍如何使用MySQLi或PDO来与数据库建立连接,并介绍连接时可能遇到的问题和处理方法。
第三章:执行SQL语句建立好数据库连接后,可以使用SQL语句来进行数据库操作。
SQL(Structured Query Language)是用于与关系型数据库进行交互的标准语言。
本章将介绍如何使用PHP执行SQL语句,包括SELECT语句用于查询数据,INSERT语句用于插入新数据,UPDATE语句用于修改数据,DELETE语句用于删除数据。
同时,还会介绍如何使用预处理语句和绑定参数来防止SQL注入攻击。
第四章:处理查询结果执行SELECT语句后,会得到一个结果集。
PHP提供了许多函数来处理查询结果,方便进行数据的提取和处理。
本章将详细介绍如何使用PHP遍历结果集,获取查询结果的行数和列数,以及如何使用fetch函数获取查询结果的每一行数据和字段值。
第五章:事务处理事务是一组数据库操作的集合,要么全部成功执行,要么全部回滚。
事务处理可以确保数据的完整性和一致性,防止数据错误和数据丢失。
本章将介绍如何使用PHP进行事务处理,包括开启事务、提交事务、回滚事务,以及如何处理事务中出现的异常。
第六章:数据库优化数据库优化是提高数据库性能的重要手段。
通过优化数据库结构、索引、查询语句等,可以减少数据库操作的时间和负担,提高网站的响应速度。
本章将介绍一些常用的数据库优化技巧,包括优化表结构、创建索引、使用适当的数据类型、优化查询语句等。
$.ajax使用方法$.ajax是jQuery中的一个方法,用于执行异步HTTP(Ajax)请求。
以下是$.ajax的基本使用方法:1.创建请求:```javascript$.ajax({url:"example.php",//请求的URL地址type:"GET",//请求方式,GET或POST dataType:"json",//预期服务器返回的数据类型,可以是xml、json、script、html等success:function(data){//请求成功后的回调函数console.log(data);//输出服务器返回的数据},error:function(){//请求失败时的回调函数console.log("请求失败");}});```2.发送数据:```javascript$.ajax({url:"example.php",type:"POST",data:{foo:"bar"},//要发送到服务器的数据,以键值对的形式表示dataType:"json",success:function(data){console.log(data);},error:function(){console.log("请求失败");}});```3.处理服务器响应:在成功回调函数中,服务器返回的数据作为参数传递给回调函数。
可以根据需要处理这些数据,例如更新页面内容或执行其他操作。
4.配置选项:$.ajax方法接受一个配置对象作为参数,其中包含以下选项:-`url`:请求的URL地址。
-`type`:请求方式,默认为"GET"。
-`dataType`:预期服务器返回的数据类型,默认为"html"。
ajax 调用方法Ajax调用方法详解Ajax(Asynchronous JavaScript and XML)是一种用于创建快速动态网页的技术,它通过在后台与服务器进行少量数据交换,实现了网页无需刷新即可更新部分内容的功能。
在前端开发中,Ajax的应用非常广泛,本文将详细介绍几种常见的Ajax调用方法。
一、XMLHttpRequest对象XMLHttpRequest是Ajax的核心对象,它用于与服务器进行数据交互。
通过创建XMLHttpRequest对象并调用其相关方法,可以实现异步加载数据、发送数据到服务器等操作。
创建XMLHttpRequest对象的方法如下:```javascriptvar xhr;if (window.XMLHttpRequest) {xhr = new XMLHttpRequest(); // 非IE浏览器} else if (window.ActiveXObject) {xhr = new ActiveXObject('Microsoft.XMLHTTP'); // IE浏览器}```使用XMLHttpRequest对象发送GET请求的方法如下:```javascriptxhr.open('GET', 'data.php?param1=value1¶m2=value2', true);xhr.onreadystatechange = function() {if (xhr.readyState === 4 && xhr.status === 200) {var response = xhr.responseText;// 处理服务器返回的数据}};xhr.send();```使用XMLHttpRequest对象发送POST请求的方法如下:```javascriptxhr.open('POST', 'data.php', true);xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');xhr.onreadystatechange = function() {if (xhr.readyState === 4 && xhr.status === 200) {var response = xhr.responseText;// 处理服务器返回的数据};xhr.send('param1=value1¶m2=value2');```二、jQuery的Ajax方法jQuery是一款功能强大的JavaScript库,它封装了许多常用的操作,包括Ajax。
ajax的流程随着互联网的发展,网页的交互性越来越重要,而Ajax技术的出现为实现网页的动态效果提供了很好的解决方案。
本文将介绍Ajax 的流程,包括Ajax的定义、工作原理、流程以及应用场景等。
一、Ajax的定义Ajax全称Asynchronous JavaScript and XML,即异步JavaScript 和XML。
它是一种用于在Web应用程序中创建交互式用户界面的技术,可以在不重新加载整个页面的情况下更新页面的部分内容。
Ajax技术的出现使得用户可以更加快速、方便地获取页面内容,提高了用户体验。
二、Ajax的工作原理Ajax技术的核心是JavaScript和XML。
JavaScript可以通过XMLHttpRequest对象向服务器发送请求,服务器将数据以XML格式返回给客户端,JavaScript再通过DOM操作将数据更新到页面上。
由于Ajax是异步的,也就是说,当JavaScript向服务器发送请求时,它不会停止页面的其他操作,而是在后台进行请求和数据处理,从而实现了页面的动态效果。
三、Ajax的流程1. 创建XMLHttpRequest对象在使用Ajax技术之前,需要先创建XMLHttpRequest对象。
XMLHttpRequest对象是JavaScript内置的对象,用于向服务器发送请求和接收响应。
2. 发送请求当XMLHttpRequest对象创建完成后,可以通过open()和send()方法向服务器发送请求。
其中,open()方法用于设置请求的类型、URL 和是否异步等信息,而send()方法用于发送请求。
3. 接收响应当服务器接收到请求后,会根据请求的类型和URL返回数据。
在客户端,XMLHttpRequest对象会监听服务器的响应,并通过onreadystatechange事件来处理响应。
当服务器返回响应时,XMLHttpRequest对象会触发onreadystatechange事件,开发者可以通过该事件来获取服务器返回的数据。
ajax的数据类型摘要:1.AJAX 简介2.AJAX 数据类型的含义3.AJAX 的数据类型分类4.实际应用中的数据类型示例5.结语正文:一、AJAX 简介AJAX(Asynchronous JavaScript and XML)即异步JavaScript 和XML,是一种用于在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页内容的技术。
通过使用JavaScript 和XMLHttpRequest 对象,可以实现异步请求服务器数据,使得网页在加载时不需要等待数据完全加载,从而提高用户体验。
二、AJAX 数据类型的含义在AJAX 中,数据类型指的是服务器返回的数据的类型。
这些数据可以是HTML、XML、JSON、纯文本等不同格式的信息。
根据服务器返回的数据类型,AJAX 可以进行相应的处理,例如更新页面内容、处理错误信息等。
三、AJAX 的数据类型分类1.XML(可扩展标记语言):XML 是一种用于描述数据结构的标记语言。
在AJAX 中,服务器返回的XML 数据需要通过XML 解析器进行解析,然后根据解析结果更新页面内容。
2.JSON(JavaScript 对象表示法):JSON 是一种轻量级的数据交换格式,易于阅读和编写。
在AJAX 中,服务器返回的JSON 数据可以直接用JavaScript 进行解析和处理。
3.HTML:服务器返回的HTML 数据可以直接插入到页面的DOM(文档对象模型)中,用于更新页面内容。
4.纯文本:服务器返回的纯文本数据可以用于显示在页面上,或者作为其他处理的输入数据。
四、实际应用中的数据类型示例假设一个网页需要从服务器获取一篇文章的详细内容,服务器返回的数据可能是如下格式的JSON:```json{"title": "文章标题","author": "作者","content": "文章正文"}```在AJAX 请求成功后,JavaScript 可以根据返回的JSON 数据更新页面内容,例如显示文章标题、作者信息等。
ajax的工作流程Ajax的工作流程Ajax(Asynchronous JavaScript and XML)是一种用于创建动态网页的技术,它可以在不刷新整个页面的情况下,通过异步请求和响应数据,实现页面的局部更新。
下面我们来了解一下Ajax的工作流程。
1. 用户发起请求当用户在浏览器中输入网址或点击页面上的链接时,会向服务器发送请求。
这个请求可以是一个普通的HTTP请求,也可以是一个Ajax请求。
2. 服务器响应请求服务器接收到请求后,会根据请求的内容进行处理,并返回相应的数据。
如果是一个普通的HTTP请求,服务器会返回一个完整的HTML页面;如果是一个Ajax请求,服务器会返回一个XML、JSON或纯文本等格式的数据。
3. 客户端接收响应当客户端(浏览器)接收到服务器返回的数据后,会根据数据的格式进行解析。
如果是XML或JSON格式的数据,客户端会使用JavaScript解析器将其转换为JavaScript对象;如果是纯文本格式的数据,客户端会直接使用文本字符串。
4. 客户端更新页面客户端接收到数据后,会根据数据的内容更新页面的相应部分。
这个过程通常是通过JavaScript代码来实现的。
例如,如果是一个商品列表页面,客户端可以使用JavaScript代码将服务器返回的商品数据动态地插入到页面中,从而实现页面的局部更新。
5. 用户交互当页面更新完成后,用户可以与页面进行交互。
例如,用户可以点击某个按钮,触发一个Ajax请求,从而更新页面的另一个部分。
这个过程可以不刷新整个页面,从而提高用户体验。
总结Ajax的工作流程可以概括为:用户发起请求,服务器响应请求,客户端接收响应,客户端更新页面,用户交互。
通过这个过程,Ajax 可以实现页面的局部更新,从而提高用户体验。
同时,Ajax还可以减少服务器的负担,提高网站的性能。
jquery中ajax请求的使⽤和四个步骤⽰例ajax() ⽅法⽤于执⾏ AJAX(异步 HTTP)请求,所有的 jQuery AJAX ⽅法都使⽤ ajax() ⽅法,该⽅法通常⽤于其他⽅法不能完成的请求。
基本的语法是:$.ajax({name:value, name:value, … })下⾯是通常使⽤的⽰例:$.ajax({type:'POST', // 规定请求的类型(GET 或 POST)url:uploadV, // 请求的url地址dataType:'json', //预期的服务器响应的数据类型data:{},//规定要发送到服务器的数据beforeSend:function(){ //发送请求前运⾏的函数(发送之前就会进⼊这个函数)// ....},success: function(result){ // 当请求成功时运⾏的函数//...},error:function(result){ //失败的函数//...},complete:function(){ //请求完成时运⾏的函数(在请求成功或失败之后均调⽤,即在 success 和 error 函数之后,不管成功还是失败都会进这个函数) // ...}});如果还需要其他参数,参考下⾯列举的⼀下其他的可以⽤到的名称和值:名称值/描述async布尔值,表⽰请求是否异步处理。
默认是 true。
beforeSend(xhr)发送请求前运⾏的函数。
cache布尔值,表⽰浏览器是否缓存被请求页⾯。
默认是 true。
complete(xhr,status)请求完成时运⾏的函数(在请求成功或失败之后均调⽤,即在 success 和 error 函数之后)。
contentType发送数据到服务器时所使⽤的内容类型。
默认是:”application/x-www-form-urlencoded”。
context为所有 AJAX 相关的回调函数规定 “this” 值。
ajax请求的例子Ajax(Asynchronous JavaScript and XML)是一种用于创建交互式网页应用的技术。
它通过在后台与服务器进行数据交换,实现页面的异步更新,避免了页面的重新加载,提高了用户体验。
下面将为大家介绍一些使用Ajax进行数据请求的例子。
例子一:获取用户信息假设我们有一个网页,需要获取用户的姓名和年龄。
我们可以使用Ajax发送请求,将用户信息发送给服务器,并在页面上显示出来。
以下是使用jQuery库实现的示例代码:```javascript$.ajax({url: "/user",type: "GET",dataType: "json",success: function(response) {var name = ;var age = response.age;$("#name").text(name);$("#age").text(age);}});例子二:搜索功能假设我们有一个搜索框,用户可以在其中输入关键词,并实时获取相关的搜索结果。
以下是一个使用Ajax实现的搜索功能的示例代码:```javascript$("#search-input").on("input", function() {var keyword = $(this).val();$.ajax({url: "/search",type: "GET",data: { keyword: keyword },dataType: "json",success: function(response) {var results = response.results;$("#search-results").empty();for (var i = 0; i < results.length; i++) {$("#search-results").append("<li>" + results[i] + "</li>");}}});});例子三:加载更多内容假设我们有一个新闻网站,页面上只显示了部分新闻内容,用户可以点击“加载更多”按钮来获取更多的新闻。
JQuery中Ajax的操作完整例⼦Java软件开发中,后台中我们可以通过各种框架,像SSH等进⾏对代码的封装,⽅便我们对Java代码的编写,例如,Struts,SpringMVC对从前台到action的流程进⾏封装控制,使我们只需要进⾏⼀些简单配置就可以实现;⽽spring进⾏了对各种对象的管理进⾏封装,提供了AOP编程的⽅式,⼤⼤⽅便了我们;⽽hibernate和IBatis则是对JDBC代码进⾏封装,不需要我们每次都写那些重复⽽繁杂的JDBC代码。
前台呢,对于页⾯⼀些效果,验证等,我们都是通过JavaScript语⾔进⾏完成的,但是它也就像我们的Java代码⼀样,是最前台语⾔最基础的,⽽jQuery则是对js代码进⾏封装⽅便我们前台代码的编写,⽽且它还有⼀个⾮常⼤的优势就是解决了浏览器的兼容问题,这也是我们使⽤它⾮常重要的原因之⼀。
⽽现在为了满⾜⽤户的需求,Ajax(Asynchronous Javascript + XML)异步刷新起到了⽆可⽐拟的作⽤,以前写Ajax操作,总是需要我们想JDBC代码⼀样进⾏⼏个必备的步骤:AJAX——核⼼XMLHttpRequest对象,⽽JQuery也对Ajax异步操作进⾏了封装,这⾥看⼀下⼏种常⽤的⽅式。
$.ajax,$.post, $.get, $.getJSON。
⼀, $.ajax,这个是JQuery对ajax封装的最基础步,通过使⽤这个函数可以完成异步通讯的所有功能。
也就是说什么情况下我们都可以通过此⽅法进⾏异步刷新的操作。
但是它的参数较多,有的时候可能会⿇烦⼀些。
看⼀下常⽤的参数:var configObj = {method //数据的提交⽅式:get和posturl //数据的提交路劲async //是否⽀持异步刷新,默认是truedata //需要提交的数据dataType //服务器返回数据的类型,例如xml,String,Json等success //请求成功后的回调函数error //请求失败后的回调函数}$.ajax(configObj);//通过$.ajax函数进⾏调⽤。
以下是一个使用Ajax调用Web API的示例:HTML代码:```html<!DOCTYPE html><html><head><title>Ajax Call to Web API</title></head><body><button id="btnGetData">Get Data</button> <div id="divData"></div><script src="script.js"></script></body></html>```JavaScript代码(script.js):```javascriptdocument.getElementById("btnGetData").addEventListener("click", function () {var xhr = new XMLHttpRequest();xhr.onreadystatechange = function () {if (xhr.readyState === 4 && xhr.status === 200) {var data = JSON.parse(xhr.responseText);var html = "<ul>";for (var i = 0; i < data.length; i++) {html += "<li>" + data[i].Name + "</li>";}html += "</ul>";document.getElementById("divData").innerHTML = html;} else if (xhr.readyState === 4) {console.log("Error: " + xhr.statusText);}};xhr.open("GET", "/api/data", true); // Replace "/api/data" with your Web API endpoint URLxhr.send();});```上述示例中,当用户单击“Get Data”按钮时,将通过Ajax调用Web API并获取数据。
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" 对应的选项值。
表单下面的段落包含了名为"txtHint" 的div。
这个div 用作从web 服务器检索到的信息的占位符。
当用户选择数据时,执行名为"showUser()" 的函数。
该函数的执行由"onchange" 事件触发。
换句话说:每当用户改变下拉列表中的值,就会调用showUser() 函数。
JavaScript这是存储在"selectuser.js" 文件中的JavaScript 代码:var xmlHttpfunction showUser(str){ xmlHttp=GetXmlHttpObject()if (xmlHttp==null){alert ("Browser does not support HTTP Request")return}var url="getuser.php"url=url+"?q="+strurl=url+"&sid="+Mat h.random()xmlHttp.onreadystatechange=stateChangedxmlHttp.open("GET",url,true)xmlHttp.send(null)}function stateChanged() { if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){ document.getElementById("txtHint").i nnerHTML=xmlHttp.responseText } }function GetXmlHttpObject(){var xmlHttp=null;try{// Firefox, Opera 8.0+, SafarixmlHttp=new XMLHttpRequest();}catch (e){//Internet Explorertry { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); }catch (e) { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); }}return xmlHttp;}例子解释:stateChanged() 和GetXmlHttpObject 函数与PHP AJAX 请求那一节中的相同,您可以参阅其中的相关解释。
showUser() 函数假如下拉列表中的项目被选择,函数执行:调用GetXmlHttpObject 函数来创建XMLHTTP 对象定义发送到服务器的URL(文件名)向URL 添加带有下拉列表内容的参数(q) 添加一个随机数,以防服务器使用缓存的文件当触发事件时调用stateChanged 通过给定的URL 打开XMLHTTP 对象向服务器发送HTTP请求PHP 页面由JavaScript 调用的服务器页面,是名为"getuser.php" 的简单PHP 文件。
该页面用PHP 编写,并使用MySQL 数据库。
其中的代码执行针对数据库的SQL 查询,并以HTML 表格返回结果:<?php$q=$_GET["q"];$con = mysql_connect('localhost', 'peter', 'abc123');if (!$con){die('Could not connect: ' . mysql_error());}mysql_select_db("ajax_demo", $con);$sql="SELECT * FROM user WHERE id = '".$q."'";$result = mysql_query($sql);echo "<table border='1'><tr><th>Firstname</th><th>Lastname</th><th>A ge</th><th>Hometown</th><th>Job</th></tr>";while($ro w = mysql_fetch_array($result)){echo "<tr>";echo "<td>" . $row['FirstName'] . "</td>";echo "<td>" . $row['LastName'] . "</td>";echo "<td>" . $row['Age'] . "</td>";echo "<td>" . $row['Hometown'] . "</td>";echo "<td>" . $row['Job'] . "</td>";echo "</tr>";}echo "</table>";mysql_close($con);?>例子解释:当查询从JavaScript 被发送到这个PHP 页面,会发生:PHP 打开到达MySQL 服务器的连接找到拥有指定姓名的"user" 创建表格,插入数据,然后将其发送到"txtHint" 占位符。