2012-12-20 18 views
8

मैं AJAX.JqueryjQuery AJAX पोस्ट पीएचपी

यहाँ के साथ POST विधि का उपयोग कर चर गुजर समस्या आ रही है के लिए कुछ भी गुजर नहीं मेरी कोड है .html

<html> 
<head> 

<script type="text/javascript" src="js/jquery.js"></script> 

</head> 
<script> 

$(document).ready(function(){ 
$('button[type="button"]').click(function(){ 
    var dir = 'gals/'; 
    $.ajax({ 
     url: "ajaxtest.php", 
     type: "POST", 
     data: dir, 
     success: function(results){ 
      data = jQuery.parseJSON(results); 
      for (var i = 0; i < data.length ; i++) { 
       $('#buttonA').after('<br />'+data[i]+'<br />'); 
      }; 

     } 
    }) 
}) 

}) 
</script> 
<body> 
<br /> 
<button id="buttonA" type="button">Test button</button> 

</body> 
</html> 

यह कोड काम नहीं कर रहा है।

लेकिन इस एक कार्य करें: (लेकिन json के साथ)

$.post("ajaxtest.php", {dir:dir}, function(results){ 
     var data = $.parseJSON(results); 
     for (var i = 0; i < data.length ; i++) { 
      $('#buttonA').after('<br />'+data[i]+'<br />'); 
     } 
    }) 

क्यों इतनी ?! मेरे कोड में क्या गलत है? कृपया सलाह दें! बहुत बहुत धन्यवाद।

यह json के साथ काम नहीं करता है, क्योंकि सफलता पैरामीटर नाम गलत है:

उत्तर

8

data निम्न स्वरूप होना चाहिए। यह कॉलबैक के अंदर कोड के अनुसार नहीं है।
इसे results से data पर बदलें।

var dir = 'gals/'; 
$.ajax({ 
    url: "ajaxtest.php", 
    type: "POST", 
    data: {'dir': dir}, 
    success: function(data){ 
     data = jQuery.parseJSON(data); 
     for (var i = 0; i < data.length ; i++) { 
      $('#buttonA').after('<br />'+data[i]+'<br />'); 
     }; 

    } 
}); 
+0

यह एक काम कर रहा है, लेकिन मैं कैसे पारित मेरी सरणी के रूप में चर? – aleXela

+0

आप एक स्ट्रिंग भेज रहे हैं, और इसे डेटा नहीं कहा जाना चाहिए। इस तरह पैरामीटर काम करते हैं, आप उन्हें माता-पिता के भीतर कुछ भी कह सकते हैं जब तक कि फ़ंक्शन सही तरीके से संदर्भित न हो। – thescientist

+0

धन्यवाद के टन !!!!! आवश्यकतानुसार काम कर रहा है! – aleXela

3

अंतर यह है कि गैर-कामकाजी उदाहरण में, आप एक स्ट्रिंग भेज रहे हैं, और कामकाजी उदाहरण में आप एक ऑब्जेक्ट भेज रहे हैं। तो, उसी ऑब्जेक्ट को अपने गैर-कामकाजी उदाहरण में भेजें।

url:'mypath/' 

होना ही था:

$.ajax({ 
    url: "ajaxtest.php", 
    type: "POST", 
    data: {dir : 'gals/'}, 
    success: function(results){ 
     data = jQuery.parseJSON(results); 
     for (var i = 0; i < data.length ; i++) { 
      $('#buttonA').after('<br />'+data[i]+'<br />'); 
     }; 

    } 
}) 
+0

बहुत बहुत धन्यवाद! यह वही है! – aleXela

+0

@alexela कोई जांच नहीं – thescientist

0

यूआरएल क्षेत्र स्लैश कि यह इतना काम नहीं कर बनाया जा सकता है

url:'mypath' 
संबंधित मुद्दे