解析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代碼介紹:
- /*
- * jQuery Ajax By Name Plugin
- *
- * licensed under the MIT licenses:
- * http://www.opensource.org/licenses/mit-license.php
- *
- * Author achun (achun.shx at gmail.com)
- * Create Date: 2008-6-21
- * Last Date: 2008-6-21
- * Revision:2.8.6.21
- */
- (function($) {
- /**
- * 獲取鼠標點擊的元素坐標
- */
- $.fn.clickPos = function(e){
- var pos ={x:0,y:0};
- if (e.offsetX != undefined) {
- pos.x = e.offsetX;
- pos.y = e.offsetY;
- } else if (typeof $.fn.offset == 'function') {
- var offset = this.offset();
- pos.x = e.pageX - offset.left;
- pos.y = e.pageY - offset.top;
- } else {
- pos.x = e.pageX - this[0].offsetLeft;
- pos.y = e.pageY - this[0].offsetTop;
- }
- return pos;
- }
- /**
- * ajaxName() 根據標簽name屬性來提交數據,替代form提交方式
- * options:{//與ajax的options是一樣的結構
- * data:{}//要附加提交的數據
- * }
- * successful:如果元素有有效值,defualt:true
- */
- $.fn.ajaxName = function(options,successful) {
- if(options==undefined) options={};
- optionsoptions.data = options.data || {};
- successfulsuccessful = successful == undefined ? true:successful;
- var data = {};
- var name= options.name || '';
- this.each(function() {
- var el=this,o=$(this),n = o.attr('name'),hasval = o.attr('value')!=undefined;
- if (!n) return;
- var t = el.type, tag = el.tagName.toLowerCase();
- if (n=='/'){
- if (name=='') name = hasval?o.attr('value'):o.text();
- return;
- }
- if (successful && (el.disabled || t == 'reset' || t == 'button' ||
- (t == 'checkbox' || t == 'radio') && !el.checked ||
- (t == 'submit' || t == 'image') ||
- tag == 'select' && el.selectedIndex == -1))
- return;
- var v= hasval? o.attr('value') :o.hasClass('ValueByText')?o.text():o.html();
- if (v == undefined) return;
- if (n.indexOf('.')>0){
- nn=n.split('.');
- var len=n.length - 1;
- var b=data;
- $.each(n,function(i){
- if (i!=len){
- if(b[this] == undefined) b[this]={};
- bb=b[this];
- }else
- b[this]=v;
- });
- }else if (n.indexOf('[]')>0){
- nn=n.slice(0,n.length-2);
- if(data[n] == undefined) data[n]=[];
- data[n].push(v);
- }else{
- data[n]=v;
- }
- });
- var dat={};
- if (name){
- dat[name]=data;
- datdata=dat[name];
- }else
- dat=data;
- for (var o in options.data){
- data[o]=options.data[o];
- };
- options.data=dat;
- return options.data;
- };
- })(jQuery);
- /*
- * jQuery Ajax By Name Plugin
- *
- * licensed under the MIT licenses:
- * http://www.opensource.org/licenses/mit-license.php
- *
- * Author achun (achun.shx at gmail.com)
- * Create Date: 2008-6-21
- * Last Date: 2008-6-21
- * Revision:2.8.6.21
- */
- (function($) {
- /**
- * 獲取鼠標點擊的元素坐標
- */
- $.fn.clickPos = function(e){
- var pos ={x:0,y:0};
- if (e.offsetX != undefined) {
- pos.x = e.offsetX;
- pos.y = e.offsetY;
- } else if (typeof $.fn.offset == 'function') {
- var offset = this.offset();
- pos.x = e.pageX - offset.left;
- pos.y = e.pageY - offset.top;
- } else {
- pos.x = e.pageX - this[0].offsetLeft;
- pos.y = e.pageY - this[0].offsetTop;
- }
- return pos;
- }
- /**
- * ajaxName() 根據標簽name屬性來提交數據,替代form提交方式
- * options:{//與ajax的options是一樣的結構
- * data:{}//要附加提交的數據
- * }
- * successful:如果元素有有效值,defualt:true
- */
- $.fn.ajaxName = function(options,successful) {
- if(options==undefined) options={};
- optionsoptions.data = options.data || {};
- successfulsuccessful = successful == undefined ? true:successful;
- var data = {};
- var name= options.name || '';
- this.each(function() {
- var el=this,o=$(this),n = o.attr('name'),hasval = o.attr('value')!=undefined;
- if (!n) return;
- var t = el.type, tag = el.tagName.toLowerCase();
- if (n=='/'){
- if (name=='') name = hasval?o.attr('value'):o.text();
- return;
- }
- if (successful && (el.disabled || t == 'reset' || t == 'button' ||
- (t == 'checkbox' || t == 'radio') && !el.checked ||
- (t == 'submit' || t == 'image') ||
- tag == 'select' && el.selectedIndex == -1))
- return;
- var v= hasval? o.attr('value') :o.hasClass('ValueByText')?o.text():o.html();
- if (v == undefined) return;
- if (n.indexOf('.')>0){
- nn=n.split('.');
- var len=n.length - 1;
- var b=data;
- $.each(n,function(i){
- if (i!=len){
- if(b[this] == undefined) b[this]={};
- bb=b[this];
- }else
- b[this]=v;
- });
- }else if (n.indexOf('[]')>0){
- nn=n.slice(0,n.length-2);
- if(data[n] == undefined) data[n]=[];
- data[n].push(v);
- }else{
- data[n]=v;
- }
- });
- var dat={};
- if (name){
- dat[name]=data;
- datdata=dat[name];
- }else
- dat=data;
- for (var o in options.data){
- data[o]=options.data[o];
- };
- options.data=dat;
- return options.data;
- };
- })(jQuery);
責任編輯:chenqingxiang
來源:
計世網