jQuery

2012-01-15 1 views
5

मैं के साथ मेरी json सरणी है के साथ एक json सरणी साइकिल चलाना यह है:jQuery

[{"id":"1","cid":"1","da":"08:00:00","a":"12:00:00","data":"2011-07-03","persone":"3","nome":"Via Bligny"}, 

{"id":"8","cid":"1","da":"08:30:00","a":"14:45:00","data":"2011-09-26","persone":"2","nome":"Via Bligny"}, 

{"id":"9","cid":"1","da":"08:30:00","a":"14:15:00","data":"2011-09-26","persone":"2","nome":"Via Bligny"}] 

और मैं किसी तालिका में उसका प्रिंट ले उदाहरण के लिए चाहते हैं,

<tr><td>{id}</td><td>{da}</td><td>{a}</td><td>{data}</td>(ecc)</tr> 

प्रत्येक डेटा के लिए एक पंक्ति सेट है, लेकिन, अगर मैं इस कोड

function ore(cid){ 
     $.post('index.php?act=ore', {cid : 1}, function(data){ 
      $.each(data, function(i){ 
       document.write(data[i].id); 
      }); 
     }); 
    } 
उदाहरण के लिए

के साथ प्रयास करें, यह उत्पादन

०१२३५१६४१० है
undefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefinedundefined 

मैंने एक और बार चक्र करने की भी कोशिश की है, लेकिन कुछ भी हल नहीं हुआ है।

आपके ध्यान के लिए धन्यवाद।

फ्रांसेस्को

+0

दिखाया गया है आपका कोड काम करेंगे [यहाँ सबूत है] (http://jsfiddle.net/4gpHT/)। क्या आपने सत्यापित किया है कि 'डेटा' आपको वह चीज़ दे रहा है जो आप उम्मीद करते हैं? –

+0

मुझे लगता है कि आप पहले JSON को पार्स नहीं कर रहे हैं। [नीचे मेरा जवाब देखें] (http://stackoverflow.com/a/8871612/1106925)। –

+1

Iesm मैंने JSON का विश्लेषण नहीं किया :) मुझे getJSON का उपयोग करने के लिए उपयोग किया गया था इसलिए मैंने ऐसा नहीं किया): –

उत्तर

3

Your code as shown works fine.

इस वजह से

, मैं यह सोचते कर रहा हूँ कि आप पाशन से पहले JSON पार्स नहीं किया है जावास्क्रिप्ट में।

var parsed = $.parseJSON(data); 

तो अपने कोड होगा ...

function ore(cid){ 
    $.post('index.php?act=ore', {cid : 1}, function(data){ 

      // parse it first 
     var parsed = $.parseJSON(data); 

     $.each(parsed, function(i,v){ 
      document.write(parsed[i].id); 
    //  document.write(v); // or like this 
     }); 
    }); 
} 
पार्स बिना

, तो आप सिर्फ स्ट्रिंग में वर्णों से अधिक पाशन कर रहे हैं, और उनमें से कोई एक id संपत्ति होगा।

+1

सबसे अच्छा जवाब –

0
function ore(cid){ 
     $.post('index.php?act=ore', {cid : 1}, function(data){ 
      $.each(data, function(key, value){ 
       document.write(value.id); 
      }); 
     }); 
    } 
+0

;) धन्यवाद, लेकिन मैं पिछले एक –

0
function ore(cid){ 
    $.postJSON('index.php?act=ore', {cid : 1}, function(data){ 
     for(var i in data) { 
      document.write(data[i].id); 
     }; 
    }); 
} 
+0

पसंद करता हूं, मुझे लगता है कि मैं जेसन को पार्स पसंद करता हूं;) –

0
function ore(cid){ 
     $.post('index.php?act=ore', {cid : 1}, function(data){ 

var arr = $.parseJSON(data); 

for(x in arr){ 

    alert(arr[x]['id']); 
    alert(arr[x]['da']); 
    alert(arr[x]['a']); 
    alert(arr[x]['data']); 
    alert(arr[x]['ecc']); 
} 

    }); 
} 
+0

धन्यवाद;) को जेसन को पार्स करना पड़ा –

0

आप कर सकते थे और शायद एक templating प्रणाली का उपयोग करना चाहिए। आप the one jQuery provides इस्तेमाल कर सकते हैं:

$.template("tableRowTemplate",'<tr><td>${id}</td><td>${da}</td><td>${a}</td><td>${data}</td>${ecc}</tr>'); 
function ore(cid){ 
    var result; 
    $.post('index.php?act=ore', {cid : 1}, function(data){ 
     $.each(data, function(i,el){ 
      var row = ($.tmpl("tableRowTemplate", el); 
      if(!result) 
       result = row; 
      else 
       result.add(row); 
     }); 
    }); 
    // do what you want to do with result 
}