日度归档:2008年5月15日

第一次使用json,汗,以前都没注意到用这么个数据类型

一直都是直接用ajax返回html片段,复杂点的就用xml。以前一直知道有json这种类型,一直没有使用过,但没想到用它做返回是这么的简单,晕了。。。下面是一段ajax发表评论的程序。。

采用的是jquery类。

代码如下:

js代码

 

XML/HTML代码
  1. <SCRIPT LANGUAGE="JavaScript">  
  2. <!–   
  3.     function send(){   
  4.         var msg="";   
  5.         if($("#s_content").val()==""){   
  6.             alert(" 评论内容不能为空! ");   
  7.             $("#s_content").focus();   
  8.             return false;   
  9.         }else if($("#s_secode").val()==”){   
  10.             alert(" 验证码不能为空! ");   
  11.             $("#s_secode").focus();   
  12.             return false;   
  13.         }   
  14.         $.post("?idea/send_commend",   
  15.                { content:$("#s_content").val(),iid:<%$idea.iid%>,secode:$("#s_secode").val() },   
  16.                function(data){   
  17.                     if(data.msg===true){   
  18.                         $("#s_content").val("");   
  19.                         $("#s_secode").val("");   
  20.                         alert("评论发布成功");   
  21.                     }else{   
  22.                         alert(data.msg);   
  23.                     }   
  24.                     $("#secode_box").html("<IMG SRC=‘includes/seccode.php’ onclick=\"javescript:recode()\" BORDER=‘0’ ALT=‘点击刷新’>");   
  25.                },"json");   
  26.     }   
  27.   
  28.     function recode(){   
  29.         $("#secode_box").html("<IMG SRC=‘includes/seccode.php’ onclick=\"javescript:recode()\" BORDER=‘0’ ALT=‘点击刷新’>");   
  30.     }   
  31. //–>  
  32. </SCRIPT>  

 

因采用的是框架,?idea/send_commend 页面代码如下:

 

PHP代码
  1. <?php   
  2. if(isset($_SESSION[‘member’])){   
  3.     if($_POST[‘secode’]!=$_SESSION[‘code’]){   
  4.         $msg[‘msg’]=‘验证码不正确!’;   
  5.     }else{   
  6.         if($idea->writeCommend($_POST[‘iid’],$_SESSION[‘member’][‘mid’],$_POST[‘content’],$_SESSION[‘member’][‘mid’])){   
  7.             $msg[‘msg’]=true;   
  8.         }else{   
  9.             $msg[‘msg’]=‘评论出错!’;   
  10.         }   
  11.            
  12.     }   
  13. }else{   
  14.     $msg[‘msg’]=‘您没有登陆,请登陆后再发布评论!’;   
  15. }   
  16. echo json_encode($msg);   
  17. exit;   
  18. ?>  

JSON介绍

介绍
我们知道AJAX技术能够使得每一次请求更加迅捷,对于每一次请求返回的不是整个页面,也仅仅是所需要返回的数据。通常AJAX通过返回XML格式的数据,然后再通过客户端复杂的JavaScript脚本解析和渲染这些XML格式的数据。
JSON(读Jason)是为了能够使得数据格式成为一种标准,更简单的被JavaScript解析。

优点
1、轻量级的数据交换格式
2、人们读写更加容易
3、易于机器的解析和生成
4、能够通过JavaScript中eval()函数解析JSON
5、JSON支持多语言。包括:ActionScript, C, C#, ColdFusion, E, Java, JavaScript, ML, Objective CAML, Perl, PHP, Python, Rebol, Ruby, and Lua.

语法
JSON语法是一种用于传输和生成数据的协定,很类似于C家族的语言,所以很容易被C家族的语言所解析。
对象:对象包含再{}之间
属性:采用Key-Value对来表示。属性之间使用逗号分开。  string : value
数组:数组存放再[]之间   [ elements ]
元素:元素之间用逗号分开
值:值可以是字符串,数字,对象,数组,true,false,null

例子:
JSON
{"menu": {  
   "id": "file",
   "value": "File:",  
   "popup": {  
     "menuitem": [
       {"value": "New", "onclick": "CreateNewDoc()"},
       {"value": "Open", "onclick": "OpenDoc()"},  
       {"value": "Close", "onclick": "CloseDoc()"} ]
   }
}}

XML

 

<menu id="file" value="File" >

   <popup>

     <menuitem value="New" onclick="CreateNewDoc()" />

     <menuitem value="Open" onclick="OpenDoc()" />

     <menuitem value="Close" onclick="CloseDoc()" />

</popup>

</menu>

json网址:http://www.json.org/json-zh.html