2012-07-17 12 views
5

मैं वास्तव में लगभग 2 घंटे खोज रहा हूं और PHP से JS तक JSON डेटा को पास करने के तरीके पर अभी भी एक अच्छा उदाहरण नहीं मिला है। मेरे पास PHP में एक JSON एन्कोडिंग स्क्रिप्ट है जो एक JSON स्क्रिप्ट को बाहर निकालती है जो इस तरह (छद्म कोड) कम या कम दिखती है।PHP से JS तक JSON कैसे प्राप्त करें?

{ 
"1": [ 
    {"id":"2","type":"1","description":"Foo","options:[ 
    {"opt_id":"1","opt_desc":"Bar"}, 
    {"opt_id":"2","opt_desc":"Lorem"}], 
    {"id":"3","type":"3","description":"Ipsum","options:[ 
... 
"6": 
    {"id":"14","type":"1","description":"Test","options:[ 
... 
etc 

समस्या यह है कि, मैं जावास्क्रिप्ट के साथ यह डेटा कैसे प्राप्त कर सकता हूं? मेरा लक्ष्य एक जेएस स्क्रिप्ट बनाना है जो इन JSON डेटा के आधार पर एक सर्वेक्षण उत्पन्न करता है, लेकिन ईश्वर के प्रति ईमानदार मुझे यह कैसे करना है इस पर कोई उदाहरण नहीं मिल रहा है। अनुमान लगाना कुछ ऐसा है:

Obj jsonData = new Object(); 
jsonData = $.getJson('url',data,function()){ 
    enter code here 
} 

किसी भी अच्छे उदाहरण या इसी तरह के किसी भी लिंक की अत्यधिक सराहना की जाएगी। और मुझे लगा कि PHP में डेटा एन्कोडिंग मुश्किल हिस्सा था ...

संपादित करें:

मैं इस कोड काम करने के लिए स्निपेट डाला, तो मैं जे एस में मेरे पूरे JSON डेटा देख सकते हैं। लेकिन अब मैं यह नहीं समझ सकता कि आंतरिक डेटा कैसे प्राप्त किया जाए। यह चरण संख्या (1-6) प्रिंट करता है लेकिन मैं यह नहीं समझ सकता कि प्रश्न डेटा कैसे प्राप्त करें, और फिर प्रत्येक प्रश्न के भीतर विकल्प डेटा। क्या मुझे प्रत्येक लूप नेस्टेड के साथ प्रयोग करना है?

$(document).ready(function() 
    {  
     $('#show-results').click(function() 
     { 
      $.post('JSAAN.php', function(data) 
      { 
       var pushedData = jQuery.parseJSON(data); 
       $.each(pushedData, function(i, serverData) 
       { 
        alert(i); 
       }) 
      }) 
     }) 
    }); 

विचार यहाँ मध्यम स्तर में प्रश्न जानकारी में लाने के लिए और qusetion विवरण बाहर मुद्रित करने के लिए है, तो सवाल प्रकार के आधार पर - विकल्पों के माध्यम से लूप (यदि हो तो) चेकबॉक्स/radiobutton-समूह बनाने के लिए अगले प्रश्न पर जाने से पहले। पहला नंबर वर्तमान में काम कर रहे मल्टी स्टेज पोल के किस चरण का प्रतिनिधित्व करता है। मेरी योजना इसे अंतिम चरण तक छिपाने/दिखाने से 6 चरणों में विभाजित करना है जहां फॉर्म अजाक्स के माध्यम से सबमिट किया गया है।

उत्तर

6
नहीं

यकीन है लेकिन मुझे लगता है, आप

$.getJSON('url', data, function(jsonData) {      
    // operate on return data (jsonData)  
}); 
अब

आप पहुँच सकते हैं और पीएचपी json डेटा पर काम कर सकते हैं, तो आप getJSON बाहर इसका इस्तेमाल करने जा रहे हैं फोन आप को असाइन कर सकें उपयोग कर सकते हैं एक चर

var neededData; 
$.getJSON('url', data, function(jsonData) { 
    neededData = jsonData; 
});  
+0

यह deffo मैं क्या जरूरत है, मैं सिर्फ यह काम xD getJSON अंदर एक चेतावनी डालने की कोशिश की करने की जरूरत है लेकिन यह कभी सक्रिय करता है। – Tom

+1

मुझे लगता है कि फ़ंक्शन में एक ब्रांड्स त्रुटि है (jsonData)) {, फ़ंक्शन होना चाहिए (jsonData) {नहीं? यद्यपि काम करने के लिए कोई भी नहीं मिल सकता है, बस थोड़ी देर के लिए इसे हथौड़ा कर रहा है :) – Tom

+0

हाँ, आप अतिरिक्त कोष्ठक के बारे में सही हैं :) – Leon

5

प्रयास करें jQuery प्रलेखन: http://api.jquery.com/jQuery.getJSON/

यह उदाहरण मिलना चाहिए आप आरंभ:

$.getJSON('ajax/test.json', function(data) { 
    var items = []; 

    $.each(data, function(key, val) { 
    items.push('<li id="' + key + '">' + val + '</li>'); 
    }); 

    $('<ul/>', { 
    'class': 'my-new-list', 
    html: items.join('') 
    }).appendTo('body'); 
}); 

यह उदाहरण जेएसओएन संरचना पर आधारित है;

{ 
    "one": "Singular sensation", 
    "two": "Beady little eyes", 
    "three": "Little birds pitch by my doorstep" 
} 
+0

आह अच्छा, बहुत बहुत धन्यवाद :) यह $ .getJSON ('json.php') के लिए भी काम करता है? – Tom

+0

हाँ बस आपको जो भी यूआरएल चाहिए उसे प्रतिस्थापित करें - PHP द्वारा लौटाए गए डेटा को JSON एन्कोड किया जाना होगा। json_encode(); – ajtrichards

3

PHP में गूंज का उपयोग न करें। यह स्ट्रिंग मुद्रित नहीं करेगा JSON।

JSON को जावास्क्रिप्ट पास करने के लिए json_encode का उपयोग करें।

उपयोग जावास्क्रिप्ट अंत में JSON में मान प्राप्त करने के लिए each का उपयोग कर सकते हैं। http://api.jquery.com/jQuery.getJSON/:

उदाहरण

http://www.darian-brown.com/pass-a-php-array-to-javascript-as-json-using-ajax-and-json_encode/

+0

आह चीयर्स! ज्यादातर यह देखने के लिए प्रिंट कर रहा था कि मुझे सिंटैक्स सही मिला है, लेकिन हमेशा जानना अच्छा है। – Tom

+1

मैंने एक उदाहरण लिंक दिया। इसे जाँचे। –

+0

क्या मुझे अभी भी json_encode को गूंजने की आवश्यकता है हालांकि इस उदाहरण में? http://www.darian-brown.com/pass-a-php-array-to-javascript-as-json-using-ajax-and-json_encode/ – Tom

2

आप JQuery उपयोग कर रहे हैं वहाँ अपने दृष्टिकोण आप यहाँ देख सकते हैं के रूप में करने के लिए एक बहुत आसान उपाय है।

अन्यथा मैं सिर्फ यह बताना चाहता हूं कि ऊपर दिए गए कोड में आपके द्वारा किए गए जावास्क्रिप्ट में सीधे अपने JSON तक पहुंचने का कोई तरीका नहीं है। मुख्य बिंदु यह है कि जावास्क्रिप्ट आपके ब्राउज़र पर चलता है जबकि आपकी PHP स्क्रिप्ट आपके सर्वर पर चलती है। तो निश्चित रूप से उनके बीच एक संचार होना चाहिए। इसलिए आपको सर्वर पर सर्वर से डेटा का अनुरोध करना होगा जो मैं सुझाव दूंगा।

HTH

+0

मैंने सोचा था कि .getJson फ़ंक्शन एक अजाक्स-संचालित फ़ंक्शन है जो किसी भी फ़ाइल से जेसन डेटा को पकड़ सकता है? मुझे वास्तव में यह सुनिश्चित नहीं था कि इसका उपयोग कैसे किया जाए, मुझे यह बहुत भ्रमित लगता है। हालांकि मैं आपके जवाब की सराहना करता हूं :) – Tom

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