2012-06-12 21 views
8

जब कोई उपयोगकर्ता किसी बटन पर क्लिक करता है तो मैं कुछ डेटा वापस करना चाहता हूं और JSON के माध्यम से पुनरावृत्ति करना चाहता हूं ताकि मैं परिणामों को तालिका पंक्ति में जोड़ सकूं।

इस बिंदु पर मैं बस अपना लूप काम करने की कोशिश कर रहा हूं, यह मेरा कोड है।

मेरे JSON वापस इस प्रकार आ रहा है: { "कॉलम": [ "उपयोगकर्ता नाम", "पासवर्ड"], "डाटा": [[ "foo" "बार"]]}

$("#button").click(function(){ 

    $.ajax({ 
     url: 'http://localhost/test.php', 
     type: 'get', 
     success: function(data) { 
     $.each(data.items, function(item) { 
      console.log(item); 
      }); 
     }, 
     error: function(e) { 
      console.log(e.message); 
     } 
    }); 

}); 

मुझे एक jQuery मिल रहा है (लाइन 16, एक परिभाषित नहीं है) त्रुटि। मैं क्या गलत कर रहा हूं?

+0

कैसे अपने json की तरह लग रहा है? – Shyju

+0

'ए' क्या है और लाइन 16 कहां है? – Blender

+0

{"COLUMNS": ["उपयोगकर्ता नाम", "पासवर्ड"], "डेटा": [["foo", "bar"]]} –

उत्तर

11

मानते हुए अपने JSON की तरह इस

var item= { 
     "items": [ 
        { "FirstName":"John" , "LastName":"Doe" }, 
        { "FirstName":"Anna" , "LastName":"Smith" }, 
        { "FirstName":"Peter" , "LastName":"Jones" } 
       ] 
      } 

आप इसे इस

$.each(item.items, function(index,item) {   
    alert(item.FirstName+" "+item.LastName) 
}); 

नमूना तरह क्वेरी कर सकता है: http://jsfiddle.net/4HxSr/9/

संपादित करें: प्रति JSON ओ पी के रूप में बाद में प्रकाशित किया गया था

आपके JSON में कोई आइटम नहीं है, इसलिए यह अमान्य है।

इस

var item= { "COLUMNS": [ "username", "password" ], 
      "DATA": [ [ "foo", "bar" ] ,[ "foo2", "bar2" ]] 
      } 

तरह

आपके JSON के अनुसार आप इस

console.debug(item.COLUMNS[0]) 
console.debug(item.COLUMNS[1]) 

$.each(item.DATA, function(index,item) {   
    console.debug(item[0]) 
    console.debug(item[1]) 
    }); 

कार्य नमूना है जैसे कि यह क्वेरी चाहिए: http://jsfiddle.net/4HxSr/19/

+0

धन्यवाद, ऐसा लगता है कि मैं अपनी समझ में बहुत दूर था लेकिन इससे मदद मिलती है। मैं कॉलबैक में इंडेक्स पास किए बिना आइटम [1] का संदर्भ देने की कोशिश कर रहा था। –

+0

@ जेसनवेल्स: आपका स्वागत है :) खुशी है कि मैं मदद कर सकता हूं। – Shyju

3

आप जोड़ने की जरूरत:

dataType: 'json', 

.. ताकि आप होना चाहिए:

$("#button").click(function(){ 

$.ajax({ 
    url: 'http://localhost/test.php', 
    type: 'get', 
    dataType: 'json', 
    success: function(data) { 
    $.each(data.COLUMNS, function(item) { 
     console.log(item); 
     }); 
    }, 
    error: function(e) { 
     console.log(e.message); 
    } 
}); 

}); 

.. साथ ही यह सुनिश्चित करें कि आप प्रत्येक बयान में कॉलम संदर्भित कर रहे हैं।

getJSON भी यह कर का एक और तरीका है ..

http://api.jquery.com/jQuery.getJSON/

+0

धन्यवाद, मुझे एहसास नहीं हुआ कि मुझे डेटाटाइप की आवश्यकता है: जेसन अगर मैं पहले से ही जेसन –

+0

लौट रहा था तो आप नहीं करते हैं कि आप $ .getJSON का उपयोग कर रहे हैं - यह $ .ajax ({dataType: 'json'} के लिए एक रैपर है); – Sp4cecat

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