2013-01-23 24 views
5

मैंने अभी जेक्यू यूआई 1.8.23 से 1.10 तक स्विच किया है। इस संस्करण के लिए, ajaxOptions बहिष्कृत है और अब इसके बजाय ui.ajaxSettings का उपयोग किया जाता है।पोस्ट डेटा JQuery UI टैब 1.10

$("#tabs").tabs({ 
     ajaxOptions: { 
      type : 'POST', 
      data : 'format=html', 
      error: function(xhr, status, index, anchor) { 
       $(anchor.hash).html(
        "Couldn't load this tab. We'll try to fix this as soon as possible. " + 
        "If this wouldn't be a demo. "); 
      }, 
      success: function() { 
       *Something in here* 
      } 
     } 
    }); 

सब कुछ काम किया ठीक:

यह कैसे मेरे कोड देखा की तरह है। अब नए कोड:

$("#tabs").tabs({ 
     beforeLoad: function(event, ui) { 
      ui.ajaxSettings.type = 'POST'; 
      ui.ajaxSettings.data = 'format=html'; 
      ui.jqXHR.error(function() { 
       ui.panel.html(
       "Couldn't load this tab. We'll try to fix this as soon as possible. " + 
       "If this wouldn't be a demo."); 
       }); 
      ui.jqXHR.success(function(){ 
*something in here* 
       }); 
     } 
    }); 

तो मैं इस डेटा पोस्ट करने के लिए की जरूरत है format=html मेरी पोस्ट सर्वर के लिए भेजा चर अपने सर्वर के लिए, लेकिन नए संस्करण के साथ खाली हैं। सर्वर को कुछ भी नहीं भेजा जाता है। साथ ही, अगर मैं अपने php script में पोस्ट-चर प्राप्त करना चाहता हूं तो सरणी खाली है। मैं ZEND बीटीडब्ल्यू का उपयोग कर रहा हूं। मुझे इसे POST के माध्यम से भेजने की ज़रूरत है - इसके चारों ओर कोई रास्ता नहीं है।

आपकी मदद

+1

क्या आपने इसे हल किया? मैंने खोज की है और कोई संकल्प नहीं लगता है। ऐसा लगता है कि यूआई-टैब डिज़ाइन की एक महत्वपूर्ण विशेषता है - पोस्ट-डेटा जोड़ने की क्षमता - छोड़ दिया गया! – user1055761

+1

http://bugs.jqueryui.com/ticket/8673 – damko

उत्तर

3

आप jQuery.ajax के लिए स्रोत को देखें, तो के लिए धन्यवाद, लाइन 486 पर आप इसे यूआरएल के लिए डेटा जोड़ने देखेंगे। फिर लाइन 532 पर यह पहले सेन्ड विधि को कॉल करता है, जो कि jQuery UI टैब में पहले लोड ईवेंट को ट्रिगर करता है।

$("#tabs").tabs({ 
    beforeLoad: function(event, ui) { 
     ui.ajaxSettings.type = 'POST'; 
     ui.ajaxSettings.url += (/\?/.test(ui.ajaxSettings.url) ? "&" : "?") + 'format=html'; 
     ui.jqXHR.error(function() { 
      ui.panel.html(
       "Couldn't load this tab. We'll try to fix this as soon as possible. " + 
       "If this wouldn't be a demo."); 
     }); 
     ui.jqXHR.success(function(){ 
      *something in here* 
     }); 
    } 
}); 
2

मैं एक ही समस्या है:

तो तुम सब करने की जरूरत है डेटा के बजाय यूआरएल को संशोधित है। मैं इस परीक्षण किया है:

ui.ajaxSettings.url += (/\?/.test(ui.ajaxSettings.url) ? "&" : "?") + 'format=html'; 

लेकिन यह एक GET प्रकार नहीं एक POST है।

मैं कोशिश की है:

ui.ajaxSettings.format = 'html'; 

लेकिन यह पोस्ट में किसी भी चर नहीं था।

तो मैं कोशिश की है:

ui.ajaxSettings.data = { format:'html' }; 

कोई चर अब और पोस्ट में।

+0

डेटा को पहले लोड से पहले संसाधित करने की आवश्यकता होगी। एपीआई दस्तावेज से: नोट: यद्यपि ui.ajaxSettings प्रदान किया गया है और संशोधित किया जा सकता है, इनमें से कुछ सेटिंग्स पहले ही jQuery द्वारा संसाधित की जा चुकी हैं।उदाहरण के लिए, prefilters लागू किया गया है, *** डेटा संसाधित किया गया है, और प्रकार निर्धारित किया गया है ***। पहले लोड ईवेंट एक ही समय में होता है, और इसलिए एक ही प्रतिबंध है, जैसा कि jQuery.ajax() से पहले से कॉलबैक भेजता है। –

1

सवाल और अच्छा जवाब के लिए PetersenDidIt पोस्ट करने के लिए ईसाई सीफ़र्ट धन्यवाद! यहां एक ही समस्या का मेरा AJAX कार्यान्वयन है, उम्मीद है कि यह कोड स्निपेट किसी को वहां मदद करेगा!

$("#tabs").tabs({ 
     beforeLoad: function(event, ui) { 
      var url = window.location.protocol + "//" + window.location.hostname + "/ajax"; 
      var data = {name: "job", value: "Rock Star"}; 

      ui.ajaxSettings.type = 'GET'; 
      ui.ajaxSettings.url = url + "?" + $.param(data, false); 

      //console.log(ui.ajaxSettings.url); 
      ui.jqXHR.fail(function() { 
       ui.panel.html('Couldn't load this tab!'); 
      }); 
     } 
    }); 

इसके अलावा, ध्यान क्या jqXHR तरीकों आप अब अधिलेखित कर रहे हैं, नवीनतम jQuery के यूआई (ver। 1.11.4) मूल्यह्रास तरीकों का उपयोग नहीं करता है भुगतान करते हैं।

https://github.com/scottgonzalez/jquery-ui/commit/e3f94a87dc312c2225e9ebe7231d868820bd6150

संबंधित मुद्दे