2012-02-04 3 views
1

Ceci est la réponse à mon appel ajax. Je veux manipuler chaque élément de tableau pour mettre à jour le titre d'un bouton correspondant sur ma page qui a la valeur de l'élément de lettre. J'ai besoin de remplacer l'alerte (réponse); avec une boucle sur le tableau json.jquery ajax - comment gérer la réponse json

{"COLONNES": ["PAGESNUM", "LETTRE"], "DONNÉES": [["372", "A"], ["922", "B"], ["779", " C "], [" 3 78 "," D "], [" 132 "," E "], [" 353 "," F "], [" 551 "," G "], [" 591 " , "H"], ["6", "I"], ["340", "J"], ["261", "K"], ["314", "l"], [" 837 "," M "], [" 88 "," N "], [" 120 "," O "], [" 303 "," P "], [" 14 "," Q "], [" 355 "," R "], [" 762 "," S "], [" 235 "," T "], [" 12 "," U "], [" 44 "," V "], [ "581", "W"], [ "49", "Y"], [ "19", "Z"]]}

$.ajax({ 
    type: "Get", 
    url: "cfc/basic.cfc?method=CountUsersByLetter&returnformat=json", 
    data: "nbw=" + nbw, 
    datatype: "html", 
    success: function (response) { 
     //usercount = parseInt(response.substring(0, 10)); 
     ///$(_$this.target).attr('title', usercount); 
     alert(response); 
    }, 
    error: function (xhr, textStatus, errorThrown) { 
     alert('errorThrown'); 
    } 
}); 

Répondre

1

javascript est sensible à la casse, vous allez vouloir faire ce paramètre dataType et si vous obtenez JSON en arrière, puis ne dites pas que vous jQuery vous attendez « html »

dataType: "json", 
    success: function (response) { 
     alert(response.DATA[0][1]);//should alert "A" 
    } 

Si vous devez faire des looping, vos tableaux sont response.COLUMNS et response.DATA (qui est un tableau de tableaux).

var numCols = response.COLUMNS.length; 
for(var i = 0; i < numCols; i++){ 
    response.COLUMNS[i] 
} 

ou boucle sur le tableau imbriqué

var numData = response.DATA.length; 
for(var i = 0; i < numData; i++){ 
    for(var j = 0; j < response.DATA[i].length; j++){ 
     response.DATA[i][j] 
    } 
} 
2

Vous avez beaucoup de tableaux dans la sortie JSON. Par exemple, vous boucle pourrait par la propriété DATA qui est un tableau de tableaux:

success: function (response) { 
    $.each(response.DATA, function(index, elements) { 
     // for each element in the DATA array get the 
     // coupes number and letter which are respectively the first 
     // and second elements 
     var number = elements[0]; 
     var letter = elements[1]; 
     ... 
    }); 
} 
+0

Je suis en train de tester votre solution, mais je ne peux pas aller au-delà d'un problème de format javascript. Même après avoir utilisé jsbeautify, le script est désactivé sur la page. – user990016

+0

@darin. Je ne voudrais pas aider ce gars ... – gdoron

+0

Qui diable êtes-vous? Où descendez-vous? – user990016