jQuery通过Ajax返回JSON数据


Posted in Javascript onApril 28, 2015

服务端PHP读取MYSQL数据,并转换成JSON数据,传递给前端Javascript,并操作JSON数据。本文将通过实例演示了jQuery通过Ajax向PHP服务端发送请求并返回JSON数据。

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

<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:4px; height:42px} 
#userlist li{float:left; width:80px; line-height:42px; height:42px; font-size:14px; 
font-weight:bold} 
#info{clear:left; padding:6px; border:1px solid #b6d6e6; background:#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的操作可以查看本站收集的文章:。以下是server.php的详细代码,其中数据连接部分省略,请大家自行建立数据连接。

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

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

CREATE TABLE IF NOT EXISTS `user` ( 
 `id` int(11) NOT NULL auto_increment, 
 `username` varchar(100) NOT NULL, 
 `sex` varchar(6) NOT NULL, 
 `tel` varchar(50) NOT NULL, 
 `email` varchar(64) NOT NULL, 
 PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
解密效果
Jun 23 Javascript
用jquery实现点击栏目背景色改变
Dec 10 Javascript
Enter回车切换输入焦点实现思路与代码兼容各大浏览器
Sep 01 Javascript
js实现Select列表各项上移和下移的方法
Aug 14 Javascript
学习javascript面向对象 掌握创建对象的9种方式
Jan 04 Javascript
通过正则表达式获取url中参数的简单实现
Jun 07 Javascript
Ionic3 UI组件之Gallery Modal详解
Jun 07 Javascript
Vue实现内部组件轮播切换效果的示例代码
Apr 07 Javascript
vue用Object.defineProperty手写一个简单的双向绑定的示例
Jul 09 Javascript
三分钟教你用Node做一个微信哄女友(基友)神器(面向小白)
Jun 21 Javascript
jQuery操作选中select下拉框的值代码实例
Feb 07 jQuery
vue缓存之keep-alive的理解和应用详解
Nov 02 Javascript
javascript实现控制文字大中小显示
Apr 28 #Javascript
Jquery中$.post和$.ajax的用法小结
Apr 28 #Javascript
轻量级的原生js日历插件calendar.js使用指南
Apr 28 #Javascript
javascript中Function类型详解
Apr 28 #Javascript
浅谈Jquery为元素绑定事件
Apr 27 #Javascript
javascript实现实时输出当前的时间
Apr 27 #Javascript
javascript模拟php函数in_array
Apr 27 #Javascript
You might like
预告映像公开!第1章续篇剧场版动画《Princess Principal Crown Handler》4月10日上映!
2020/03/06 日漫
PHP 变量类型的强制转换
2009/10/23 PHP
php使用codebase生成随机数
2014/03/25 PHP
PHP 只允许指定IP访问(允许*号通配符过滤IP)
2014/07/08 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
2018/02/10 PHP
Thinkphp框架使用list_to_tree 实现无限级分类列出所有节点示例
2020/04/04 PHP
PHP基于进程控制函数实现多线程
2020/12/09 PHP
Prototype使用指南之dom.js
2007/01/10 Javascript
Ext grid 添加右击菜单
2009/11/26 Javascript
EXTJS内使用ACTIVEX控件引起崩溃问题的解决方法
2010/03/31 Javascript
原生Js页面滚动延迟加载图片实现原理及过程
2013/06/24 Javascript
JS实现漂亮的淡蓝色滑动门效果代码
2015/09/23 Javascript
jQuery按需加载轮播图(web前端性能优化)
2017/02/17 Javascript
基于axios 的responseType类型的设置方法
2019/10/29 Javascript
基于vue-cli3+typescript的tsx开发模板搭建过程分享
2020/02/28 Javascript
vue 获取元素额外生成的data-v-xxx操作
2020/09/09 Javascript
写一个Vue loading 插件
2020/11/09 Javascript
[57:36]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第三场 2月1日
2021/03/11 DOTA
pyv8学习python和javascript变量进行交互
2013/12/04 Python
详解Python的Lambda函数与排序
2016/10/25 Python
浅谈Python数据类型判断及列表脚本操作
2016/11/04 Python
Python numpy中矩阵的基本用法汇总
2019/02/12 Python
django 捕获异常和日志系统过程详解
2019/07/18 Python
django获取from表单multiple-select的value和id的方法
2019/07/19 Python
手把手教你用纯css3实现轮播图效果实例
2017/05/04 HTML / CSS
CSS3不透明度实例讲解
2016/04/26 HTML / CSS
金宝贝童装官网:Gymboree
2016/08/31 全球购物
亚瑟士美国官网:ASICS美国
2017/02/01 全球购物
计算 s=(x*y)1/2,用两个宏定义来实现
2016/08/11 面试题
SQL数据库笔试题
2016/03/08 面试题
.NET里面如何取得当前的屏幕分辨率
2012/12/06 面试题
促销活动计划书
2014/05/02 职场文书
社区党支部承诺书
2015/04/29 职场文书
运动会100米加油稿
2015/07/21 职场文书
创业计划书之酒店
2019/08/30 职场文书
python 安全地删除列表元素的方法
2022/03/16 Python