2009-02-05 19 views
6

मैं एक ऐप पर काम कर रहा हूं जो मेरे सर्वर पर एक PHP स्क्रिप्ट के लिए पोस्ट AJAX अनुरोध करेगा। स्क्रिप्ट डेटाबेस से पूछताछ करेगी और एक सरणी के रूप में रिकॉर्ड्स की एक पंक्ति लौटाएगी। (प्रत्येक पंक्ति के लिए एक सरणी, जिसमें आईडी, शीर्षक, आदि जैसे तत्व शामिल हैं)। मैं फिर इस सरणी को एन्कोड करने के लिए json_encode() का उपयोग करना चाहता हूं, और उसे जावास्क्रिप्ट पर वापस भेजना चाहता हूं जो रिकॉर्ड प्रदर्शित करने के लिए इसका उपयोग करेगा।जेएसओरी के साथ जेएसओएन का उपयोग कैसे करें?

1) मैं JSON एन्कोडेड स्ट्रिंग को जावास्क्रिप्ट में कैसे वापस कर सकता हूं? 2) पंक्तियों के माध्यम से जावास्क्रिप्ट लूप कैसे और उनके क्षेत्रों तक पहुंच जाएगा?

उत्तर

11

jQuery के साथ JSON प्राप्त करने के लिए, बस jQuery.getJSON() का उपयोग करें। वैकल्पिक रूप से, आप किसी अन्य AJAX उपकरण का उपयोग कर सकते हैं और फिर जावास्क्रिप्ट ऑब्जेक्ट प्राप्त करने के लिए जेसन को बस eval()।

एक सरणी के माध्यम से लूप करने के लिए, मैं आमतौर पर jQuery.each() का उपयोग करें:

var recordList = yourMethodToGetRecordListWithAjax(); 

jQuery.each(recordList, function() 
{ 
    alert(this.Name); // For example 
}); 
+0

वहाँ अपने जवाब में एक छोटी सी टाइपो है, jquery.each $ .प्रत्येक होना चाहिए। इसके अलावा यह अच्छा काम करता है :) –

+0

मेरा कोड यहां है: $ .getJSON ("getData.php", डेटा, myFunctionToLoopThroughResults); –

+3

$ jQuery के लिए शॉर्टकट है - मैं प्रत्येक() जैसी "स्थैतिक" चीज़ों के लिए jQuery लिखना पसंद करता हूं और "गैर स्थैतिक" चीजों जैसे प्रश्नों के लिए $ का उपयोग करता हूं क्योंकि मुझे लगता है कि यह पठनीयता को बढ़ाता है। –

0

आप आवेदन/json की सामग्री प्रकार के साथ गूंज से जे एस के लिए JSON इनकोडिंग स्ट्रिंग लौट सकते हैं।

बाकी के लिए उत्तर ऊपर देखें।

3

1) php स्क्रिप्ट में:

$return["foo"] = "bar"; 
$return["blah"] = "bleg"; 
print json_encode($return); 

2) जावास्क्रिप्ट में:

  $.ajax({ 
        type: "POST", 
        url: URL, 
        cache:false, 
        data: values, 
        dataType:'json', 
        success: function(json) 
        { 
        var foo = json.foo; 
        if (json.blah == "bleg") 
        { 
         // do stuff 
        } 

        } // end success function 
       });  // end ajax call 
संबंधित मुद्दे