热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

jQuery/Ajax/JSON/PHP操作实例代码

Jquery对ajax进行了强大的包装,使用Jquery中的ajax方法,让我们可以不用管浏览器的兼容性而只专注与代码的开发。Jquery实在太强大了,越研究她就越会被她的魅力所吸引。嘿嘿~~今天来给大家演示一个,服务端PHP读取MYSQL数据,并转换成JSON数据,传递给前端J

Jquery对ajax进行了强大的包装,使用Jquery中的ajax方法,让我们可以不用管浏览器的兼容性而只专注与代码的开发。Jquery实在太强大了,越研究她就越会被她的魅力所吸引。嘿嘿~~今天来给大家演示一个,服务端PHP读取MYSQL数据,并转换成JSON数据,传递给前端Javascript,并操作JSON数据。


本文将通过实例演示了jQuery通过Ajax向PHP服务端发送请求并返回JSON数据。阅读本文的读者应该具备jQuery、Ajax、PHP相关知识。
特别提示:这里PHP程序用的是CI(CodeIgniter)框架,另外 php中的json_encode方法,必需php版本在5.2以及以上才可以使用。


JSON(Javascript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。JSON在前后台交互的过程中发挥着相当出色的作用。本人很讨厌XML的那种复杂的数据结构,呵呵~~其实自己也没对XML进行过很深的研究,只是觉得用js操作XML一点都没操作json来得方便。

还是老样子,先看DEMO

DEMO看完了吧?那么接下来看教程吧!


1

 

4

 

5

Jquery/Ajax/JSON/PHP操作完全实例

 

6  

7  

8


实例中,我加两个下拉菜单分别给了两个不同的ID,第一个#letter(代表首字母的下拉菜单),第二个#server(代表魔兽服务器的下拉菜单),我想要的效果是当选择第一个下拉菜单的时候,第二个下拉菜单首先会变成“请稍等…正在加载数据”,还有同时会出现一个ajax-loading的图片,然后第二个下拉菜单会出来魔兽的服务器信息,是根据首字母来取得的。


01 $(function(){ 

02     $('#letter').change(function(){ 

03         var $letter_select = $(this);//选择首字母下拉菜单的jquery对象 

04         var $server_select = $('#server');//服务器的下拉菜单的jquery对象 

05         if ($letter_select.val() == ""){//如果下单菜单选择了初始的“请选择首字母”的选项 

06             $server_select.empty().append(" 

07  

08   

09 "); 

10             return false; 

11         } 

12         $server_select.empty().append(" 

13  

14   

15 ");//将server的下拉菜单清空并且加入一个“请稍等...正在加载数据”的项目 

16         var $tips = $('#ajax_image');//这个是ajax图片的jquery对象 

17         var $position = $letter_select.offset();//取得当前操作的位置 

18         $tips.css("top",$position.top).css("left",$position.left).show();//将ajax-loading的图片移动到当前操作的位置,并且让这个图片显示出来 

19         $.getJSON('jquery_ajax_json_php/search_server.html?letter=' + $letter_select.val(),function(json){ 

20             if(json.length == 0){//没有从数据库中找到数据 

21                 $server_select.empty().append(" 

22  

23   

24 ") 

25             }else{//成功获取数据 

26                 $server_select.empty();//将server的下拉菜单清空 

27                 $.each(json,function(index,entry){//利用each方法,遍历json数组 index代表序号0,1,2... entry代表结果对象 

28                     $server_select.append(" 

29  

30   

31 ");//将取得的数据逐条插入到server的下拉菜单中 

32                 }); 

33             } 

34             $tips.hide();//隐藏ajax-loading图片 

35         }) 

36     }) 

37 });
这里我给首字母的下拉菜单绑定了一个onchange的事件,ajax的方法是用的jquery的getJSON的方法。代码里面已经有了注视了,我就不多说了。

01 function search_server(){ 

02     //取得参数 

03     $letter = $this->input->get('letter'); 

04     //查询数据 

05     $server_list = $this->db->from('wow_server')->like('name',$letter,'after')->get(); 

06     $return_result = array(); 

07     if ($server_list->num_rows() > 0){ 

08         foreach($server_list->result() as $server_obj){//将取得的结果压成二维数组 

09             $return_result[] = array( 

10                 'id'    => $server_obj->id, 

11                 'name'  => $server_obj->name 

12             ); 

13         } 

14     } 

15     sleep(1);//让程序等待1秒,然后再返回数据 

16     echo json_encode($return_result); 

17 }
最后附上用到的表信息


1 CREATE TABLE `ci_wow_server` ( 

2   `id` int(11) NOT NULL AUTO_INCREMENT, 

3   `name` varchar(64) NOT NULL DEFAULT '', 

4   PRIMARY KEY (`id`), 

5   KEY `idx_products_options_values_name_zen` (`name`) 

6 ) ENGINE=MyISAM AUTO_INCREMENT


推荐阅读
  • 本文将详细介绍如何在ThinkPHP6框架中实现多数据库的部署,包括读写分离的策略,以及如何通过负载均衡和MySQL同步技术优化数据库性能。 ... [详细]
  • 本文探讨了2019年前端技术的发展趋势,包括工具化、配置化和泛前端化等方面,并提供了详细的学习路线和职业规划建议。 ... [详细]
  • 理解文档对象模型(DOM)
    本文介绍了文档对象模型(DOM)的基本概念,包括其作为HTML文档的节点树结构,以及如何通过JavaScript操作DOM来实现网页的动态交互。 ... [详细]
  • 本文探讨了如何通过WebBrowser控件在用户点击输入框时自动显示图片验证码。该过程可能涉及JavaScript事件的触发与响应。 ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • MySQL中枚举类型的所有可能值获取方法
    本文介绍了一种在MySQL数据库中查询枚举(ENUM)类型字段所有可能取值的方法,帮助开发者更好地理解和利用这一数据类型。 ... [详细]
  • 本文详细介绍了如何通过命令行启动MySQL服务,包括打开命令提示符窗口、进入MySQL的bin目录、输入正确的连接命令以及注意事项。文中还提供了更多相关命令的资源链接。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 本文详细介绍了Git分布式版本控制系统中远程仓库的概念和操作方法。通过具体案例,帮助读者更好地理解和掌握如何高效管理代码库。 ... [详细]
  • 本文介绍了如何利用npm脚本和concurrently工具,实现本地开发环境中多个监听服务的同时启动,包括HTTP服务、自动刷新、Sass和ES6支持。 ... [详细]
  • 本文介绍了多个关于JavaScript的书籍资源、实用工具和编程实例,涵盖从入门到进阶的各个阶段,帮助读者全面提升JavaScript编程能力。 ... [详细]
  • 本文详细介绍了在企业级项目中如何优化 Webpack 配置,特别是在 React 移动端项目中的最佳实践。涵盖资源压缩、代码分割、构建范围缩小、缓存机制以及性能优化等多个方面。 ... [详细]
  • 探讨了如何解决Ajax请求响应时间过长的问题。本文分析了一个从服务器获取少量数据的Ajax请求,尽管服务器已经对JSON响应进行了缓存,但实际响应时间仍然不稳定。 ... [详细]
  • 本文深入探讨了JavaScript中实现继承的四种常见方法,包括原型链继承、构造函数继承、组合继承和寄生组合继承。对于正在学习或从事Web前端开发的技术人员来说,理解这些继承模式对于提高代码质量和维护性至关重要。 ... [详细]
author-avatar
宗小胖
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有