如何用 ajax 连接mysql数据库,并且获取从中返回的数据。ajax获取从mysql返回的数据。responseXML分别输出不同数据的方法。

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 开讲前,先说下网上,大部分的关于这方面的博文或者其他什么的,就我自己的感觉,第一说得不详细,第二语言不能很好的被初学者了解。 我这篇博文的标题之所以用了三句,是为了方便其他人好查找;       这里介绍的方法有什么用呢? 使用它,就可以无闪刷新页面,并且从数据库获取实时改变的数据反馈回界面,显示出来!是不是很爽,的确。

      开讲前,先说下网上,大部分的关于这方面的博文或者其他什么的,就我自己的感觉,第一说得不详细,第二语言不能很好的被初学者了解。

我这篇博文的标题之所以用了三句,是为了方便其他人好查找;

      这里介绍的方法有什么用呢? 使用它,就可以无闪刷新页面,并且从数据库获取实时改变的数据反馈回界面,显示出来!是不是很爽,的确。

      废话不多,开讲,请注意我的代码的注释,里面详说!


     

连接的前台连接的php文件:

  1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2 <html>
  3 <head>
  4 <script>
  5 var xmlHttp;
  6 //创建xmlHttpRequest对象
  7 
  8 //下面将会针对不同的浏览器创建对象,也是两个if语句的作用
  9 /*
 10 在firefox,opera,safiar,IE7.0,IE8.0(我所知道的window对象有这个属性
 11 的浏览器)这些浏览器中,window是有XMLHttpRequest这个属性的,而IE6.0,5.5都是没有的,
 12 IE6.0或5.5是没有这个属性的,使用window.ActiveXObject替代。
 13 */
 14 function createXmlHttpObject() 
 15 {
 16     if(window.XMLHttpRequest) 
 17     { 
 18         xmlHttp = new XMLHttpRequest(); //创建对象
 19     }else if(window.ActiveXObject) 
 20     { 
 21         xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); //创建对象
 22     } 
 23     return xmlHttp;//创建成功,返回
 24 }
 25 
 26 function send()//这个函数用来和后台的服务器文件连接,可以是asp,php,我这里用php说明
 27 {
 28     xmlHttp = createXmlHttpObject();//调用上面的创建对象函数
 29     
 30     var url = "33.php"; //这里的url变量,用来存储你,你自己想要连接的文件路径,我这里比较简单是因为33.php和我这个php在同一目录
 31          
 32     if(xmlHttp)//判读,如果对象不为空,进入下面
 33     {
 34         xmlHttp.onreadystatechange = callback;
 35         /*注册回调函数名,这里可以看作是函数的调用,onreadystatechange是 XMLHttpRequest的一个属性,用来检测当前状态
 36         当状态改变,就会触发函数,所有,如果只需要函数名,不要加括号*/
 37         
 38         //下面的open 函数,顾名思义,打开,用来连接你上面的url文件
 39         //设置连接信息:
 40         //第一个参数:表示http的请求方式,主要使用get和post
 41         //第二个参数:表示请求的URL地址,get方式的请求参数也在URL中
 42         //第三个参数:表示采用同步还是异步方式进行交互,true表示异步交互
 43         xmlHttp.open("GET", url, true);    
 44         
 45         //下面的send函数,这个是对象自身有的方法,不是这里定义的send,它用来发送命令,发送什么呢,open的命令
 46         //发送数据,开始和服务器端进行交互
 47         //同步方式下,send语句会在服务器端返回数据后才执行
 48         //异步方式下,send语句会立即执行
 49         xmlHttp.send(null);        
 50     }else{
 51         alert("出错,请重新尝试!");
 52         return;
 53     }    
 54 }
 55 
 56 
 57 
 58 //回调函数,就是刚才定义的函数,用来获取从服务器文件,asp或者php或者其他返回的信息
 59 function callback() 
 60 { 
 61     var mInt = 2;//移动像素,这部分是用来验证的
 62     var _obj = document.getElementById("pic");
 63     var _text = document.getElementById("textview");
 64     var _x = parseInt(_obj.style.left);
 65     var _y = parseInt(_obj.style.top);
 66     /*if (_x < mInt)
 67             _y -= mInt;
 68         else if (_y > mInt)
 69             _x -= mInt;*/
 70         _obj.style.left = _x + "px";
 71         _obj.style.top = _y + "px";
 72     //判断对象的状态是交互完成
 73     if(xmlHttp.readyState == 4) 
 74     //这里是状态判断有0~4,百度很多详解,4代表,连接上了并且获得了数据
 75     {
 76         //判断http的交互是否成功
 77         if(xmlHttp.status==200)
 78         {
 79             //获取服务器端返回的数据
 80             var xmlDoc = xmlHttp.responseXML; 
 81             //这里把返回的数据以XML的格式存到变量中。
 82             //还有一种返回式以字符串的形式返回,responseText,这个可以用下标法逐个输出,但是注意,逐个输出的是字符,
 83             //也就是说,你想要的一个字符串会被拆成几份
 84              
 85              //这里的 getElementsByTagName("time")[0].childNodes[0].nodeValue; 是采用遍历数的方法逐个输出数据
 86              //getElementsByTagName 是通有的("  ")这里写的是你链接的文件里面的标签名,等下介绍再详说,[0]也是要写的
 87              //.childNodes[0].nodeValue;  这块也是通有的,意思是获取值
 88             _x = xmlDoc.getElementsByTagName("time")[0].childNodes[0].nodeValue;
 89             _y = xmlDoc.getElementsByTagName("in")[0].childNodes[0].nodeValue;
 90             _text.innerHTML = "_x=" + _x + ",_y" + _y;
 91              
 92         }else{
 93             alert(xmlHttp.statusText);
 94         }           
 95     }
 96 }      
 97 
 98 function refresh()
 99 {
100     
101     setInterval("send()",100); //定时刷新,循环调用,上面的send函数。、,时间间隔为0.1秒。
102     
103 }  
104 </script>
105     </head>
106     <body onLoad="refresh()">//这里调用
107         <div id='pic' style='position:absolute;left:380px;top:200px;'><img width='80' height='80' src='C:\Users\Administrator.PC--20130918KZN\Desktop\9.png' /><font id="textview"></font></div>
108         
109         
110     </body>
111 </html>

 

后台被连的php:

 1 <?php
 2 header('Content-Type: text/xml');
 3 header("Cache-Control: no-cache, must-revalidate");
 4 //上面两句是PHP 文档的 content-type 被设置为 "text/xml" ,PHP 文档被设置为 "no-cache",以防止缓存 
 5     $time = date('Y-m-d h:i:s',time());
 6     
 7     $information="XXXX";
 8     
 9     
10     echo '<?xml version="1.0" encoding="ISO-8859-1"?><person>';//这句必须有,没的话,输不出东西
11     echo "<time>" .$time. "</time>";
12       //这里的<time>  </time>标签就是刚才("  "),里面要填的,通过这方式,分别输出、获取不同的值,下同
13     echo "<in>" .$information. "</in>";
14     echo "</person>";//和上面的person完成一个一对
15     
16     
17 ?>

 

由于我自己是通过输出系统时间来测试的,测试成功后是,看到时间的。

 

如果您认为这篇文章还不错或者有所收获,您可以通过扫描一下下面的支付宝二维码 打赏我一杯咖啡【物质支持】,也可以点击右下角的【推荐】按钮【精神支持】,因为这两种支持都是我继续写作,分享的最大动力


img_12e3f54d4d0f70f0eb14f20548e3d781.png
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
3天前
|
关系型数据库 Unix MySQL
MySQL是一种关系型数据库管理系统
MySQL是一种关系型数据库管理系统
11 2
|
5天前
|
Oracle NoSQL 关系型数据库
主流数据库对比:MySQL、PostgreSQL、Oracle和Redis的优缺点分析
主流数据库对比:MySQL、PostgreSQL、Oracle和Redis的优缺点分析
17 2
|
11天前
|
SQL 关系型数据库 MySQL
创建包含MySQL和SQLServer数据库所有字段类型的表的方法
创建一个既包含MySQL又包含SQL Server所有字段类型的表是一个复杂的任务,需要仔细地比较和转换数据类型。通过上述方法,可以在两个数据库系统之间建立起相互兼容的数据结构,为数据迁移和同步提供便利。这一过程不仅要考虑数据类型的直接对应,还要注意特定数据类型在不同系统中的表现差异,确保数据的一致性和完整性。
22 4
|
8天前
|
关系型数据库 MySQL 数据库
6-2|测试连接数据库的命令
6-2|测试连接数据库的命令
|
8天前
|
SQL 关系型数据库 MySQL
ThinkPHP6 连接使用数据库,增删改查,find,select,save,insert,insertAll,insertGetId,delete,update方法的用法
本文介绍了在ThinkPHP6框架中如何连接和使用数据库进行增删改查操作。内容包括配置数据库连接信息、使用Db类进行原生MySQL查询、find方法查询单个数据、select方法查询数据集、save方法添加数据、insertAll方法批量添加数据、insertGetId方法添加数据并返回自增主键、delete方法删除数据和update方法更新数据。此外,还说明了如何通过数据库配置文件进行数据库连接信息的配置,并强调了在使用Db类时需要先将其引入。
ThinkPHP6 连接使用数据库,增删改查,find,select,save,insert,insertAll,insertGetId,delete,update方法的用法
|
9天前
|
SQL 关系型数据库 数据库连接
php连接数据库之PDO,PDO的简单使用和预定义占位符的使用以及PDOStatement对象的使用,占位符的不同形式,bindValue和bindParam绑定预定义占位符参数的区别
本文介绍了PHP中PDO(PHP Data Objects)扩展的基本概念和使用方法。内容包括PDO类和PDOStatement类的介绍,PDO的简单使用,预定义占位符的使用方法,以及PDOStatement对象的使用。文章还讨论了绑定预定义占位符参数的不同形式,即bindValue和bindParam的区别。通过具体示例,展示了如何使用PDO进行数据库连接、数据查询、数据插入等操作。
php连接数据库之PDO,PDO的简单使用和预定义占位符的使用以及PDOStatement对象的使用,占位符的不同形式,bindValue和bindParam绑定预定义占位符参数的区别
|
9天前
|
SQL 关系型数据库 MySQL
php学习笔记-连接操作mysq数据库(基础)-day08
本文介绍了PHP中连接操作MySQL数据库的常用函数,包括连接服务器、设置字符集、关闭连接、选择数据库、结果集释放、获取影响行数以及遍历结果集等操作。通过书籍查询的实例演示了如何使用这些函数进行数据库操作,并提供了一个PHP操纵MySQL数据库的模板。
php学习笔记-连接操作mysq数据库(基础)-day08
|
18天前
|
NoSQL 关系型数据库 MySQL
微服务架构下的数据库选择:MySQL、PostgreSQL 还是 NoSQL?
在微服务架构中,数据库的选择至关重要。不同类型的数据库适用于不同的需求和场景。在本文章中,我们将深入探讨传统的关系型数据库(如 MySQL 和 PostgreSQL)与现代 NoSQL 数据库的优劣势,并分析在微服务架构下的最佳实践。
|
20天前
|
存储 SQL 关系型数据库
使用MySQL Workbench进行数据库备份
【9月更文挑战第13天】以下是使用MySQL Workbench进行数据库备份的步骤:启动软件后,通过“Database”菜单中的“管理连接”选项配置并选择要备份的数据库。随后,选择“数据导出”,确认导出的数据库及格式(推荐SQL格式),设置存储路径,点击“开始导出”。完成后,可在指定路径找到备份文件,建议定期备份并存储于安全位置。
160 11
|
2月前
|
弹性计算 关系型数据库 数据库
手把手带你从自建 MySQL 迁移到云数据库,一步就能脱胎换骨
阿里云瑶池数据库来开课啦!自建数据库迁移至云数据库 RDS原来只要一步操作就能搞定!点击阅读原文完成实验就可获得一本日历哦~
下一篇
无影云桌面