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 相关文章推荐
firefox中JS读取XML文件
Dec 21 Javascript
推荐dojo学习笔记
Mar 24 Javascript
Google AJAX 搜索 API实现代码
Nov 17 Javascript
jQuery1.6 类型判断实现代码
Sep 01 Javascript
js鼠标点击事件在各个浏览器中的写法及Event对象属性介绍
Jan 24 Javascript
JS实现复制内容到剪贴板功能兼容所有浏览器(推荐)
Jun 17 Javascript
vue.js的提示组件
Mar 02 Javascript
Vue.js基础学习之class与样式绑定
Mar 20 Javascript
JS使用插件cryptojs进行加密解密数据实例
May 11 Javascript
Angular4学习教程之DOM属性绑定详解
Jan 04 Javascript
Vue js 的生命周期(看了就懂)(推荐)
Mar 29 Javascript
JS实现的贪吃蛇游戏案例详解
May 01 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
虫族 ZERG 概述
2020/03/14 星际争霸
星际争霸 Starcraft 编年史
2020/03/14 星际争霸
php使用Smarty的相关注意事项及访问变量的几种方式
2011/12/08 PHP
推荐一本PHP程序猿都应该拜读的书
2014/12/31 PHP
Zend Framework框架之Zend_Mail实现发送Email邮件验证功能及解决标题乱码的方法
2016/03/21 PHP
用YUI做了个标签浏览效果
2007/02/20 Javascript
理解Javascript_15_作用域分配与变量访问规则,再送个闭包
2010/10/20 Javascript
js保存当前路径(cookies记录)
2010/12/14 Javascript
js 静态动态成员 and 信息的封装和隐藏
2011/05/29 Javascript
JS获取几种URL地址的方法小结
2014/02/26 Javascript
jquery实现炫酷的叠加层自动切换特效
2015/02/01 Javascript
javascript属性访问表达式用法分析
2015/04/25 Javascript
jQuery实现仿腾讯微博滑出效果报告每日天气的方法
2015/05/11 Javascript
在AngularJS中使用AJAX的方法
2015/06/17 Javascript
解析JavaScript的ES6版本中的解构赋值
2015/07/28 Javascript
分步解析JavaScript实现tab选项卡自动切换功能
2016/01/25 Javascript
Javascript 动态改变imput type属性
2016/11/01 Javascript
js 轮播效果实例分享
2016/12/28 Javascript
详解利用Angular实现多团队模块化SPA开发框架
2017/11/27 Javascript
layui checkbox默认选中,获取选中值,清空所有选中项的例子
2019/09/02 Javascript
[01:55]TI9显影之尘系列 - Evil Geniuses
2019/08/22 DOTA
Python实现多并发访问网站功能示例
2017/06/19 Python
python: 判断tuple、list、dict是否为空的方法
2018/10/22 Python
Python 带有参数的装饰器实例代码详解
2018/12/06 Python
python pygame实现方向键控制小球
2019/05/17 Python
python实现接口并发测试脚本
2019/06/25 Python
python取均匀不重复的随机数方式
2019/11/27 Python
浅谈python量化 双均线策略(金叉死叉)
2020/06/03 Python
如何对python的字典进行排序
2020/06/19 Python
python模块内置属性概念及实例
2021/02/18 Python
怎样有效的进行自我评价
2013/10/06 职场文书
员工自我鉴定
2013/10/09 职场文书
化工工艺设计求职信
2014/06/25 职场文书
小程序与后端Java接口交互实现HelloWorld入门
2021/07/09 Java/Android
Python实现照片卡通化
2021/12/06 Python
Golang MatrixOne使用介绍和汇编语法
2022/04/19 Golang