Partage
  • Partager sur Facebook
  • Partager sur Twitter

[jQuery] $.getJSON

insérer les données dans un tableau HTML

Sujet résolu
    26 novembre 2010 à 10:10:35

    Bonjour :

    J'appelle un fichier PHP qui me retourne un résultat JSON grâce à json_encode().
    Les clés sont id, nom et prix.

    J'aimerais qu'une fois les données récupérer en AJAX, elles soient insérées dans un tableau HTML.

    <table id="tab"></table>
    


    $(document).ready(function() {
    	$.getJSON('tab.php', 
    	function(data) {
    		parse(data);
    	});
    });
    
    function parse(json) {
    var $tab = $('#tab');
    
    	for(var key in json) {	
    		$tab.append('<tr>');
    		$tab.append('<td>'+json[key].nom+'</td>');
    		$tab.append('<td>'+json[key].prix+'</td>');
    		$tab.append('</tr>');
    	}
    }
    


    Le HTML généré est :
    <table id="tab">
    	<tbody>
    		<tr></tr>
    		<tr></tr>
    	</tbody>
    	<td>Calzone</td>
    	<td>8.9</td>
    	<td>Orientale</td>
    	<td>9.25</td>
    </table>
    


    Au lieu de :
    <table id="tab">
    <tr>
    	<td>Calzone</td>
    	<td>8.9</td>
    </tr>
    <tr>
    	<td>Orientale</td>
    	<td>9.25</td>
    </tr>
    </table>
    


    Merci à ceux qui vont m'aider. :)
    • Partager sur Facebook
    • Partager sur Twitter
      26 novembre 2010 à 11:10:05

      pour rester dans les normes de tous les navigateurs, tu DOIS avoir un tbody dans ton tab (devine lequel en a besoin ?? ^^)

      <table id="tab">
      	<tbody>
      	</tbody>
      </table>
      


      pour le reste, je pense que
      var $tab = $('#tab').firstChild;
      
      suffirait
      • Partager sur Facebook
      • Partager sur Twitter
      Je ne dis pas que c'est nul, je dis qu'il y a moyen de faire mieux
        26 novembre 2010 à 11:14:13

        Ouais ok merci.

        Finalement j'ai juste modifié mon sélecteur...

        function parse(json) {
        var $tab = $('#tab tbody');
        
        	for(var key in json) {	
        		$tab.append('<tr>');
        		$tab.append('<td>'+json[key].nom+'</td>');
        		$tab.append('<td>'+json[key].prix+'</td>');
        		$tab.append('</tr>');
        	}
        }
        
        • Partager sur Facebook
        • Partager sur Twitter
          26 novembre 2010 à 11:14:46

          désolé, je suis pas familier de JQuery...
          moi j'l'ai fait en pur
          • Partager sur Facebook
          • Partager sur Twitter
          Je ne dis pas que c'est nul, je dis qu'il y a moyen de faire mieux

          [jQuery] $.getJSON

          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
          • Editeur
          • Markdown