jQuery通过Ajax向PHP服务端发送请求并返回JSON数据

news/2024/11/13 8:04:21 标签: json, php, javascript

服务端PHP读取MYSQL数据,并转换成JSON数据,传递给前端Javascript,并操作JSON数据。本文将通过实例演示了jQuery通过Ajax向PHP服务端发送请求并返回JSON数据。阅读本文的读者应该具备jQuery、Ajax、PHP相关知识,并能熟练运用。

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。JSON在前后台交互的过程中发挥着相当出色的作用。请接着往下看教程。

XHTML

 
<ul id="userlist"> 
   <li><a href="#" rel="1">张三</a></li> 
   <li><a href="#" rel="2">李四</a></li> 
   <li><a href="#" rel="3">王五</a></li> 
</ul> 
<div id="info"> 
   <p>姓名:<span id="name"></span></p> 
   <p>性别:<span id="sex"></span></p> 
   <p>电话:<span id="tel"></span></p> 
   <p>邮箱:<span id="email"></span></p> 
</div> 

实例中,显示了一个用户姓名列表ul#userlist,一个用户详细信息层#info。值得注意的是,我给每个<a>标签设置属性“rel”并赋值,这个很重要,将在jQuery中使用。我要实现的效果就是:当点击用户列表中任意用户的姓名,将即时显示出该用户的详细信息,如电话、EMAIL等。

CSS

 
#userlist{margin:4pxheight:42px
#userlist li{float:leftwidth:80pxline-height:42pxheight:42pxfont-size:14px;  
font-weight:bold
#info{clear:leftpadding:6pxborder:1px solid #b6d6e6background:#e8f5fe
#info p{line-height:24px
#info p span{font-weight:bold

CSS设置了用户列表和用户详细信息的显示外观,您也可以自己设计一个好看的外观。

jQuery

使用jQuery前,别忘了先要确保载入的jQuery库。

 
<script type="text/javascript" src="../js/jquery.js"></script> 

接下来开始写jQuery代码了。

 
$(function(){ 
    $("#userlist a").bind("click",function(){ 
        var hol = $(this).attr("rel"); 
        var data = "action=getlink&id="+hol; 
         
        $.getJSON("server.php",data, function(json){  
            $("#name").html(json.name); 
            $("#sex").html(json.sex); 
            $("#tel").html(json.tel); 
            $("#email").html(json.email); 
       });  
    }); 
}); 

我给用户列表的每个<a>标签都绑定一个click事件,当单击用户姓名时,执行以下操作:获取当前标签的属性“rel”的值,并组成一个数据串:var data = "action=getlink&id="+hol,接着通过ajax向服务端server.php发送JSON请求,得到后台响应后,返回JSON数据,并将得到的数据显示在用户详细信息中。

PHP

后台server.php得到前端的Ajax请求后,通过传递的参数连接数据库并查询用户表,将相应的用户信息转换成一个数组$list,最后将数组转换成JSON数据。关于PHP与JSON的操作可以查看本站收集的文章:PHP中JSON的应用。以下是server.php的详细代码,其中数据连接部分省略,请大家自行建立数据连接。

php"> 
php__keyword">include_once(php__string2">"connect.php"); php__com">//连接数据库 
php__keyword">$php__variable">action=php__global">$_GET[action]; 
php__keyword">$php__variable">id=intval(php__global">$_GET[id]); 
php__keyword">if(php__keyword">$php__variable">action==php__string2">"getlink"){ 
    php__keyword">$php__variable">query=mysql_query(php__string2">"select * from user where id=$id"); 
    php__keyword">$php__variable">row=mysql_fetch_array(php__keyword">$php__variable">query); 
    php__keyword">$php__variable">list=php__keyword">array(php__string2">"name"=>php__keyword">$php__variable">row[username],php__string2">"sex"=>php__keyword">$php__variable">row[sex],php__string2">"tel"=>php__keyword">$php__variable">row[tel],php__string2">"email"=>php__keyword">$php__variable">row[email]); 
    php__keyword">echo json_encode(php__keyword">$php__variable">list); 

通过本文可以知道jQuery通过Ajax向服务端发送JSON请求,使用方法$.getJSON非常方便简单。并且可以将服务端返回的数据进行解析,得到相应字段的内容,相比像HTML请求返回的一大串字符串那样处理方便快捷。

最后附上mysql表结构

php"> 
CREATE TABLE IF NOT EXISTS `user` ( 
  `id` int(php__number">11) NOT php__value">NULL auto_increment, 
  `username` varchar(php__number">100) NOT php__value">NULL
  `sex` varchar(php__number">6) NOT php__value">NULL
  `tel` varchar(php__number">50) NOT php__value">NULL
  `email` varchar(php__number">64) NOT php__value">NULL
  PRIMARY KEY  (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8;  本文转自博客园知识天地的博客,原文链接:jQuery通过Ajax向PHP服务端发送请求并返回JSON数据,如需转载请自行联系原博主。

http://www.niftyadmin.cn/n/1496375.html

相关文章

国防科大天河计算机应用,国防科大天河二号位居世界超级计算机TOP500榜首

据新华社广州 6月29日电(记者 陈冀)国家超级计算广州中心应用推广大会6月29日在广州召开&#xff0c;科学技术部副部长曹健林向广州超级计算中心授予了“国家超级计算广州中心”和“中国(广州)计算科学服务中心”牌匾&#xff0c;这标志着广州跻身国家级超级计算中心行列。目前…

定制你自己的敏捷方法:选择适合用于你的敏捷方法

\本文要点\\你的团队是独一无二的。你的敏捷方法应反映团队所处的环境。\\t在团队层&#xff0c;通常会以时间箱或计划、演示和反思的节奏来开展工作。\\t为治理流程&#xff0c;研究你的WIP&#xff08;在办任务&#xff09;以搞明白你自己的WIP限制。\\t有些团队发现更频繁的…

计算机图形期末试题,计算机图形学 2010 期末考试试题

计算机图形学 2010 期末考试试题计算机图形学试题一、写出下列述语的全称及中文含义。1、GKS (Graphics Kernel System)&#xff1a;图形核心系统2、PHIGS(Programmers Hierarchical Interactive Graphics System):程序员级分层结构交互图形系统(Programmers Hierarchical Inte…

计算机二级宝典考试题库,计算机二级宝典

计算机二级宝典是一款关于计算机考试备考的软件平台&#xff0c;不需要在电脑上练题&#xff0c;手机也能做题&#xff0c;这款软件上有着非常齐全的往年的例题&#xff0c;都有着非常俱全的解析&#xff0c;无论你身在何地&#xff0c;只要打开这款软件就可以开始做题练习&…

解决python3 UnicodeEncodeError: 'gbk' codec can't encode character '\xXX' in position XX

从网上抓了一些字节流&#xff0c;想打印出来结果发生了一下错误&#xff1a; UnicodeEncodeError: gbk codec cant encode character \xbb in position 8530: illegal multibyte sequence 代码 import urllib.request resurllib.request.urlopen(http://www.baidu.com) htmlBy…

南京技师学院计算机系,江苏南京技师学院2021年招生录取分数线

学生的等级观念还不是很强&#xff0c;所以还是要好好去培养自己的学习观念。从基本知识成长起来的学生有着较强的竞争力&#xff0c;学习没有任何的捷径&#xff0c;所以学习越早越好&#xff0c;年轻的是学习的精力也是更强的&#xff0c;记忆力也比较好&#xff0c;知识学习…

Linux 内存泄露检测技巧

-bash: mtrace: command not found原因&#xff1a;系统缺少 glibc-utilscentos &#xff1a; sudo yum install glibc-utils 即可 由于 C 和 C 程序中完全由程序员自主申请和释放内存&#xff0c;稍不注意&#xff0c;就会在系统中导入内存错误。同时&#xff0c;内存错误往往…

uvm_reg_item——寄存器模型(五)

uvm_reg_item 扩展自uvm_sequence_item&#xff0c;也就说寄存器模型定义了transaction item. adapter 的作用是把这uvm_reg_item转换成uvm_sequence_item&#xff0c;再经由uvm_sequencer发送个uvm_driver&#xff0c;最终在总线上传输。 //---------------------------------…