2010-12-04 6 views
1

J'ai besoin de créer une table html dynamique en utilisant PHP après avoir analysé un fichier JSON.
J'ai besoin de cette structure de colonne pour ma table; Comment puis-je créer une nouvelle ligne pour chaque 'enregistrement' analysé à partir du fichier JSON (je peux créer une chaîne séparée par des tabulations).
Une difficulté supplémentaire est que certains 'enregistrements' contiennent uniquement des données pour la colonne 'Nom' et d'autres pour toutes les colonnes. Donc, ma question est de savoir comment ajouter une ligne dynamiquement à la table et remplir la colonne de droite?
(La forme clé le fichier JSON est l'en-tête de colonne)php créer une table html dynamique

Exemple de format JSON:

{ 
"John":  {"status":"Wait" }, 
"Jennifer": {"status":"Active" }, 
"James": {"status":"Active","age":56,"count":10,"progress":0.0029857,"bad":0} 
} 
+0

Comment est JSON ressemble? – ajreal

+0

En utilisant des balises HTML? –

+0

Veuillez poster un exemple de fichier JSON pour nous aider à vous aider. – neo2862

Répondre

4

Quelque chose comme ça fonctionnerait:

$data = json_decode($json_string); 
$columns = array(); 

echo "<table><tbody>"; 
foreach ($data as $name => $values) { 
    echo "<tr><td>$name</td>"; 
    foreach ($values as $k => $v) { 
     echo "<td>$v</td>"; 
     $columns[$k] = $k; 
    } 
    echo "</tr>"; 
} 
echo "</tbody><thead><tr><th>name</th>"; 
foreach ($columns as $column) { 
    echo "<th>$column</th>"; 
} 
echo "</thead></table>" 
+0

Thx, fonctionne très bien. Ajoutée ';' à la fin de l''écho' " ' –

+0

Est-il possible de trier la colonne' nom '. J'ai essayé plusieurs possibilités en utilisant sort(), mais pas de chance jusqu'à présent. –

+0

ksort ($ data); // coller ceci après le json_decode – 01001111