मैं किसी ऑब्जेक्ट के तत्वों को किसी तालिका में धकेलने का प्रयास कर रहा हूं। इसलिए मैंने अपनी वस्तु के प्रत्येक तत्व को मवाद करने के लिए एक लूप स्थापित किया। हालाँकि लूप सिर्फ 1 लूप करता है।

Ijust ने एक बहुत ही बुनियादी लूप किया जो मेरे डेटा की लंबाई तक पहुंचने तक 'i' को बढ़ाता है।

getLigneTab : function() {

    var ligne; debugger
    var nbData = ucManager.listData.length; 
    for (var i = 0; i < nbData; i++) {  

        ligne = '<tr>' 
            + '<td>'+ucManager.listData[0].collaborateur+'</td>'
            + '<td>'+ucManager.listData[0].budget+'</td>'
            + '<td>'+ucManager.listData[0].consomme+'</td>'
            + '<td>'+ucManager.listData[0].raf+'</td>'
            + '<td>'+ucManager.listData[0].nbTicket+'</td>'

        return ligne;
    }       

},

मैं "affiche-chiffre" नामक एक बटन के क्लिक से इस फॉनक्शन के अंदर जाता हूं:

$('#affichage-chiffre').on("click", function(event) {
        var dateD = $('#debutExport').val();
        var dateF = $('#finExport').val();
        if (dateD == "" && dateD == "") {
            bootbox.alert("Saisissez une période !");
        }
        ucManager.getData(dateD, dateF);
        $('#table').html('');
        $('#table').append(ucManager.getColonnes(dateD, dateF));
        $('#table').append("<tbody></tbody>"); 
        $('#table').find("tbody").append(ucManager.getLigneTab());  
        $('#table').show();
    }); 

मुझे कम से कम 7 पंक्तियाँ मिलनी चाहिए लेकिन मुझे केवल वस्तु की पहली पंक्ति मिलनी चाहिए।

0
ISSOU 10 सितंबर 2019, 16:39

1 उत्तर

सबसे बढ़िया उत्तर

आपके getLigneTab फ़ंक्शन में कुछ समस्याएं हैं।

1) लूप के लिए return स्टेटमेंट को बाहर ले जाएं। यही कारण है कि यह केवल 1 बार निष्पादित कर रहा है।

2) ucManager.listData[0] हमेशा आपके एरे में पहले एलिमेंट को एक्सेस करेगा। इसे ucManager.listData[i] में बदलें।

3) आप हर बार लूप से गुजरने पर ligne को एक नई स्ट्रिंग पर सेट कर रहे हैं, इसलिए लूप से बाहर निकलने के बाद यह केवल एक पंक्ति होगी। इसके बजाय ligne += का प्रयोग करें।

4) आप अंतिम </tr> टैग को याद कर रहे हैं। लूप के माध्यम से प्रत्येक पुनरावृत्ति के लिए इसे स्ट्रिंग के अंत में जोड़ें।

आपका कार्य अब कुछ इस तरह दिखना चाहिए:

getLigneTab : function() {

    var ligne; debugger
    var nbData = ucManager.listData.length; 
    for (var i = 0; i < nbData; i++) {  
        ligne += '<tr>' 
            + '<td>'+ucManager.listData[i].collaborateur+'</td>'
            + '<td>'+ucManager.listData[i].budget+'</td>'
            + '<td>'+ucManager.listData[i].consomme+'</td>'
            + '<td>'+ucManager.listData[i].raf+'</td>'
            + '<td>'+ucManager.listData[i].nbTicket+'</td>'
            + '</tr>';        
    }  
    return ligne;     
}
0
Andrew Mairose 10 सितंबर 2019, 13:47