2009-07-31 7 views
0

Dans mon application, une page de vue permet d'afficher la table du nom Attributs en tant qu'en-tête et sa valeur est remplie par plusieurs personnes ci-dessous. CommeCréation d'une structure de table à l'aide de JQuery

Name Age salary 
    a 22 18912 
    b 23 89972 
    c 23 781273 

je veux comme ci-dessus ..
Mais je reçois comme

Name Age Salary 
a 22 18912 b 23 89972 23 781273 

J'utilise JQuery pour récupérer ces valeurs de ma table Mysql et de mon code de contrôleur CakePHP pour voir ..

<head> 
    <script type="text/javascript"> 
    $(document).ready(function(){ 
     var ht = $.ajax({ 
     type: "GET", 
     url: "http://localhost/FormBuilder/index.php/admins/viewEntries/"+formid, 
     async: false 
     }).responseText; 
     var myObject = eval('(' + ht + ')'); 
     var data = myObject;var last; 
     $.map(data.labels, function(i){ 
     last=i.label; 
     $("<th>"+i.label+"</th> ").appendTo("#headers"); 
     return i.label;}); 

     var htm = $.ajax({ 
     type: "GET", 
     url: "http://localhost/FormBuilder/index.php/admins/viewResults/"+formid, 
     async: false 
     }).responseText; 
     var myObject1 = eval('(' + htm + ')'); 
     var data1 = myObject1; 
     $.map(data1.values, function(i){ 
     $("<td>"+i.value+"</td> ").appendTo("#body"); 
     if(last==i.label){ 
      // where i thought to create a new row for 2 row 
     } 
     return i.value;}); 
    }); 
    </script> 
</head> 
</body> 
    <table class="entries" cellspacing="0" cellpadding="3" border="1"> 
    <tr id="headers"></tr> 
    <tr id="body"></tr> 
    </table> 
</body> 

Comment faire une nouvelle ligne pour afficher les 2e et 3e valeurs rang dans les nouveaux row..Please me suggérer .... .

Répondre

1

Pour créer une nouvelle ligne utilisez

$('table.entries').append('<tr></tr>'); 

Vous pouvez créer le code HTML pour la ligne entière avant de l'ajouter parce que ce sera beaucoup plus rapide.

1

En regardant votre code, deux choses me frappent:

Vous avez une étiquette de corps de fermeture après votre tête. Cependant, pensez à mettre votre JS dans un fichier séparé. Ajoutez la référence de script juste au-dessus de votre balise de fermeture finale du corps (il est bon d'ajouter ces derniers aussi près que possible du pied de la page)

Vous utilisez eval(). Je devine que la variable htm est JSON? Vous pouvez envisager d'utiliser JSON.parse() à partir du fichier json2.js disponible sur JSON.org.

Voyez si cet article vous déstabilise du tout. Why is using the JavaScript eval function a bad idea?

Sinon, la réponse ci-dessus devrait suffire. Vous pourriez donner une ID à la table, car ce sélecteur est le plus rapide. Avec des ajouts tels que celui-ci, il est préférable de construire tout votre HTML dans la boucle, puis de faire votre ajout en une seule opération.

Questions connexes