解析Jquery Json Php代码相关使用问题

开发 开发工具
这里考虑都考虑的是服务器返回的是JSON形式的字符串的形式,对于利用JSONObject等插件封装的JSON对象,与此亦是大同小异,这里不再做说明,下面进行Jquery Json Php代码说明

下面文章总结一下Jquery Json Php代码非常好用,只要返回json数据就可以了,如果对json数据不太了解请先百度或者google一下 。下面是一个我的工作实例;希望大家能够学习参考。

jQuery扩展ajaxName,用于ajax提交方法的页面数据获取,根据页面元素的name生成相应的js对象,然后可以把这个对象传给Jquery Json Php代码库进行编码向后台提交,支持数组,支持.表达式,#t#

下面就对Jquery Json Php代码介绍:

  1. /*    
  2.  * jQuery Ajax By Name Plugin    
  3.  *    
  4.  * licensed under the MIT licenses:    
  5.  *   http://www.opensource.org/licenses/mit-license.php    
  6.  *    
  7.  * Author achun (achun.shx at gmail.com)    
  8.  * Create Date: 2008-6-21    
  9.  * Last Date: 2008-6-21    
  10.  * Revision:2.8.6.21    
  11.  */    
  12. (function($) {     
  13. /**    
  14.  * 获取鼠标点击的元素坐标    
  15.  */      
  16. $.fn.clickPos = function(e){     
  17.   var pos ={x:0,y:0};     
  18.   if (e.offsetX != undefined) {     
  19.     pos.x = e.offsetX;     
  20.     pos.y = e.offsetY;     
  21.   } else if (typeof $.fn.offset == 'function') {     
  22.     var offset = this.offset();     
  23.     pos.x = e.pageX - offset.left;     
  24.     pos.y = e.pageY - offset.top;     
  25.   } else {     
  26.     pos.x = e.pageX - this[0].offsetLeft;     
  27.     pos.y = e.pageY - this[0].offsetTop;     
  28.   }      
  29.   return pos;     
  30. }     
  31. /**    
  32.  * ajaxName() 根据标签name属性来提交数据,替代form提交方式    
  33.  * options:{//与ajax的options是一样的结构    
  34.  *  data:{}//要附加提交的数据    
  35.  * }    
  36.  * successful:如果元素有有效值,defualt:true    
  37.  */    
  38. $.fn.ajaxName = function(options,successful) {     
  39.     if(options==undefined) options={};     
  40.     optionsoptions.data = options.data || {};     
  41.   successfulsuccessful = successful == undefined ? true:successful;     
  42.     var data = {};     
  43.     var nameoptions.name || '';     
  44.     this.each(function() {     
  45.     var el=this,o=$(this),n = o.attr('name'),hasval = o.attr('value')!=undefined;     
  46.     if (!n) return;     
  47.     var t = el.type, tag = el.tagName.toLowerCase();     
  48.         if (n=='/'){     
  49.             if (name=='') name = hasval?o.attr('value'):o.text();     
  50.             return;     
  51.         }     
  52.     if (successful && (el.disabled || t == 'reset' || t == 'button' ||     
  53.           (t == 'checkbox' || t == 'radio') && !el.checked ||     
  54.           (t == 'submit' || t == 'image') ||     
  55.           tag == 'select' && el.selectedIndex == -1))     
  56.       return;     
  57.     var vhasval? o.attr('value') :o.hasClass('ValueByText')?o.text():o.html();     
  58.     if (v == undefined) return;     
  59.     if (n.indexOf('.')>0){     
  60.         nn=n.split('.');     
  61.         var len=n.length - 1;     
  62.         var b=data;     
  63.       $.each(n,function(i){     
  64.             if (i!=len){     
  65.                 if(b[this] == undefined) b[this]={};     
  66.             bb=b[this];     
  67.             }else    
  68.             b[this]=v;     
  69.         });     
  70.     }else if (n.indexOf('[]')>0){     
  71.         nn=n.slice(0,n.length-2);     
  72.         if(data[n] == undefined) data[n]=[];     
  73.         data[n].push(v);     
  74.         }else{     
  75.             data[n]=v;     
  76.         }     
  77.   });     
  78.   var dat={};     
  79.   if (name){     
  80.     dat[name]=data;     
  81.       datdata=dat[name];     
  82.   }else    
  83.     dat=data;     
  84.   for (var o in options.data){     
  85.     data[o]=options.data[o];     
  86.   };     
  87.   options.data=dat;     
  88.   return options.data;     
  89. };     
  90. })(jQuery);    
  91.  
  92. /*  
  93.  * jQuery Ajax By Name Plugin  
  94.  *  
  95.  * licensed under the MIT licenses:  
  96.  *   http://www.opensource.org/licenses/mit-license.php  
  97.  *  
  98.  * Author achun (achun.shx at gmail.com)  
  99.  * Create Date: 2008-6-21  
  100.  * Last Date: 2008-6-21  
  101.  * Revision:2.8.6.21  
  102.  */  
  103. (function($) {  
  104. /**  
  105.  * 获取鼠标点击的元素坐标  
  106.  */   
  107. $.fn.clickPos = function(e){  
  108.   var pos ={x:0,y:0};  
  109.   if (e.offsetX != undefined) {  
  110.     pos.x = e.offsetX;  
  111.     pos.y = e.offsetY;  
  112.   } else if (typeof $.fn.offset == 'function') {  
  113.     var offset = this.offset();  
  114.     pos.x = e.pageX - offset.left;  
  115.     pos.y = e.pageY - offset.top;  
  116.   } else {  
  117.     pos.x = e.pageX - this[0].offsetLeft;  
  118.     pos.y = e.pageY - this[0].offsetTop;  
  119.   }   
  120.   return pos;  
  121. }  
  122. /**  
  123.  * ajaxName() 根据标签name属性来提交数据,替代form提交方式  
  124.  * options:{//与ajax的options是一样的结构  
  125.  *  data:{}//要附加提交的数据  
  126.  * }  
  127.  * successful:如果元素有有效值,defualt:true  
  128.  */  
  129. $.fn.ajaxName = function(options,successful) {  
  130.     if(options==undefined) options={};  
  131.     optionsoptions.data = options.data || {};  
  132.   successfulsuccessful = successful == undefined ? true:successful;  
  133.     var data = {};  
  134.     var nameoptions.name || '';  
  135.     this.each(function() {  
  136.     var el=this,o=$(this),n = o.attr('name'),hasval = o.attr('value')!=undefined;  
  137.     if (!n) return;  
  138.     var t = el.type, tag = el.tagName.toLowerCase();  
  139.         if (n=='/'){  
  140.             if (name=='') name = hasval?o.attr('value'):o.text();  
  141.             return;  
  142.         }  
  143.     if (successful && (el.disabled || t == 'reset' || t == 'button' ||  
  144.           (t == 'checkbox' || t == 'radio') && !el.checked ||  
  145.           (t == 'submit' || t == 'image') ||  
  146.           tag == 'select' && el.selectedIndex == -1))  
  147.       return;  
  148.     var vhasval? o.attr('value') :o.hasClass('ValueByText')?o.text():o.html();  
  149.     if (v == undefined) return;  
  150.     if (n.indexOf('.')>0){  
  151.         nn=n.split('.');  
  152.         var len=n.length - 1;  
  153.         var b=data;  
  154.       $.each(n,function(i){  
  155.             if (i!=len){  
  156.                 if(b[this] == undefined) b[this]={};  
  157.             bb=b[this];  
  158.             }else  
  159.             b[this]=v;  
  160.         });  
  161.     }else if (n.indexOf('[]')>0){  
  162.         nn=n.slice(0,n.length-2);  
  163.         if(data[n] == undefined) data[n]=[];  
  164.         data[n].push(v);  
  165.         }else{  
  166.             data[n]=v;  
  167.         }  
  168.   });  
  169.   var dat={};  
  170.   if (name){  
  171.     dat[name]=data;  
  172.       datdata=dat[name];  
  173.   }else  
  174.     dat=data;  
  175.   for (var o in options.data){  
  176.     data[o]=options.data[o];  
  177.   };  
  178.   options.data=dat;  
  179.   return options.data;  
  180. };  
  181. })(jQuery); 
责任编辑:chenqingxiang 来源: 计世网
相关推荐

2011-07-19 09:08:38

jQuery

2010-01-06 16:41:40

解析JSON

2016-09-18 17:24:58

php函数json_encodeunicode

2010-01-06 10:18:02

JSON类

2009-08-03 17:22:15

JSON解析

2011-05-25 15:34:17

jQueryJSON

2010-07-06 10:07:10

jQueryJSON

2011-03-04 14:58:40

jqueryJSON

2010-01-05 16:26:33

Javascript

2010-01-08 14:06:49

JSON 形式

2009-12-01 18:47:19

PHP代码转义

2009-11-23 10:31:25

PHP使用JSON

2010-02-06 09:06:58

Android SDK

2012-05-23 13:11:10

架构存储

2010-01-25 18:22:33

Android使用XM

2010-03-30 13:49:15

Oracle clob

2009-12-10 16:40:04

PHP处理分页

2009-12-04 13:31:24

PHP缺少JSON包

2010-01-06 14:24:40

Javascript解

2011-05-25 13:22:05

PHPJSON
点赞
收藏

51CTO技术栈公众号