JSON进阶第二篇 AJAX方式传递JSON数据

来源:互联网 发布:听歌软件版权 编辑:程序博客网 时间:2024/05/16 18:52

上一篇《JSON进阶第一篇 在PHP与javascript 中使用JSON》示范了在PHP和javascript中如何使用JSON类型的数据,本篇将介绍用AJAX方式得到JSON数据从而动态生成标题和提示语句。这种技术在静态页面向网站后台请求动态数据时比较有效,因为网站首页的访问量比较大,整个页面要静态化处理,但这个页面上的某些数据又要实时更新,这时就可以在静态页面中使用用AJAX来请求后台实时生成的JSON数据。关于AJAX技术可以参考《PHP访问MySql数据库 高级篇 AJAX技术》,这里详细介绍如何使用AJAX来传递JSON数据。

 

本示例程序分为json2.php和json2.html, json2.html上有个按钮,按下后将发送AJAX请求得到json2.php返回的数据。

1.json2.php

[php] view plaincopy
  1. <?php  
  2. // by MoreWindows( http://blog.csdn.net/MoreWindows )  
  3. $article_array = array(  
  4.     "count" => 3,  
  5.     array(  
  6.         "id"=>"001",  
  7.         "title"=>"PHP访问MySql数据库 初级篇",   
  8.         "link"=>"http://blog.csdn.net/morewindows/article/details/7102362"  
  9.     ),  
  10.     array(  
  11.         "id"=>"001",  
  12.         "title"=>"PHP访问MySql数据库 中级篇 Smarty技术",   
  13.         "link"=>"http://blog.csdn.net/morewindows/article/details/7094642"  
  14.     ),  
  15.     array(  
  16.         "id"=>"001",  
  17.         "title"=>"PHP访问MySql数据库 高级篇 AJAX技术",   
  18.         "link"=>"http://blog.csdn.net/morewindows/article/details/7086524"  
  19.     ),  
  20. );  
  21. $article_json = json_encode($article_array);  
  22. echo $article_json;  
  23. ?>  

2.Json2.html  

[html] view plaincopy
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head>  
  4. <title>ajax方式请求json</title>  
  5. <script type="text/javascript" src="../jquery-1.7.min.js"></script>  
  6. <script type="text/javascript">  
  7. //显示提示  
  8. function OnMouseEnterDivInfo(thisObj, title)  
  9. {  
  10.     $("#article_link").css("position","absolute");  
  11.     $("#article_link").css("left","20px");  
  12.     $("#article_link").css("top",$(thisObj).offset().top + $(thisObj).height());  
  13.     $("#article_link").html("链接地址" + title);  
  14.     $("#article_link").slideDown("fast");  
  15.     $(thisObj).css("background-color","red");     
  16. }  
  17. //隐藏提示  
  18. function OnMouseLeaveDivInfo(thisObj)  
  19. {  
  20.     $("#article_link").hide();  
  21.     $(thisObj).css("background-color","yellow");  
  22. }    
  23. //jquery通过AJAX方式得到JSON数据  
  24. $(document).ready(function(){  
  25.     $("#GetDataBtn").click(function(){  
  26.         $.post("json2.php", {}, function(data){     
  27.             var g_jsonstr = JSON.parse(data);  
  28.             var ilen = g_jsonstr['count'];  
  29.             var detailhtml = "";  
  30.             for (var i = 0; i < ilen; i++)  
  31.             {  
  32.                 var divhtml = '<div id=\"div_' + i + '\"  onmouseenter=\"OnMouseEnterDivInfo(this, \' '+ g_jsonstr[i]['link'] + '\');\" onmouseleave=\"OnMouseLeaveDivInfo(this);\" >';  
  33.                 divhtml += '<h1>' + g_jsonstr[i]['title'] + '</h1>';  
  34.                 divhtml += '</div>';  
  35.                 detailhtml += divhtml;  
  36.             }  
  37.             $("#detail").html(detailhtml);//生成新的标题区域  
  38.             $("#detail").slideDown("slow");  
  39.         });  
  40.     });  
  41. });  
  42. </script>  
  43. <style type="text/css">  
  44. div  
  45. {  
  46.     font-family:sans-serif;  
  47. }  
  48. </style>  
  49. </head>     
  50. <body>  
  51. <input type="button" id="GetDataBtn" value="生成数据" />  
  52. <div id="detail">  
  53. </div>  
  54. <p><span id="article_link" style="display:none;z-index:100"></span></p>  
  55. </body>  
  56. </html>  

运行效果如下:

下一篇《JSON进阶第三篇 apache多域名及JSON的跨域问题(JSONP)》将展示JSON的跨域问题并给出解决方案。

 

转载请标明出处,原文地址:http://blog.csdn.net/morewindows/article/details/7206390

原创粉丝点击