Html / Ajax - Retour d'une requete ds TABLEAU
Résolu
shakazoulou77
-
shakazoulou77 -
shakazoulou77 -
Bonjour,
J'aimerais mettre à jour un tableau de façon dynamique via une requête AJAX.
La requête fonctionne bien cependant je n'obtiens pas l'affichage désiré :
Une ou plusieurs lignes doivent s'ajouter au tableau HTML en fonction de la requete et dans mon cas cela affiche le contenu de la requete SQL via ajax simplement en affichant les informations à la ligne, dans aucunes cases.
Voici un extrait de mon code html:
<table>
<tr>
<th>nom</th>
<th>prenom</th>
</tr>
<tr>
<div id='zone'></div>
</tr>
</table>
et un extrait du contenu de ma fonction ajax:
requete.onreadystatechange = function()
{
if(requete.readyState == 4) {
if(requete.status == 200) {
document.getElementById('zone').innerHTML = requete.responseText;
}
}
};
un extrait du script de recherche et de son affichage appelé via ajax:
echo "<td>".$val['nom']."</td>";
echo "<td>".$val['prenom']."</td>";
La requete SQL fonctionne et la zone "zone" de mon tableau recoit bien le résultat cependant elle n'affiche pas les informations dans les cellules du tableau ligne par ligne comme désiré. C'est comme si j'étais hors du tableau sans aucune mise en forme.
Quelqu'un a une idée ?
D'avance, merci
J'aimerais mettre à jour un tableau de façon dynamique via une requête AJAX.
La requête fonctionne bien cependant je n'obtiens pas l'affichage désiré :
Une ou plusieurs lignes doivent s'ajouter au tableau HTML en fonction de la requete et dans mon cas cela affiche le contenu de la requete SQL via ajax simplement en affichant les informations à la ligne, dans aucunes cases.
Voici un extrait de mon code html:
<table>
<tr>
<th>nom</th>
<th>prenom</th>
</tr>
<tr>
<div id='zone'></div>
</tr>
</table>
et un extrait du contenu de ma fonction ajax:
requete.onreadystatechange = function()
{
if(requete.readyState == 4) {
if(requete.status == 200) {
document.getElementById('zone').innerHTML = requete.responseText;
}
}
};
un extrait du script de recherche et de son affichage appelé via ajax:
echo "<td>".$val['nom']."</td>";
echo "<td>".$val['prenom']."</td>";
La requete SQL fonctionne et la zone "zone" de mon tableau recoit bien le résultat cependant elle n'affiche pas les informations dans les cellules du tableau ligne par ligne comme désiré. C'est comme si j'étais hors du tableau sans aucune mise en forme.
Quelqu'un a une idée ?
D'avance, merci
A voir également:
- Html / Ajax - Retour d'une requete ds TABLEAU
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Imprimer tableau excel sur une page - Guide
- Editeur html - Télécharger - HTML
4 réponses
Je me trompe peut-être mais je pense que c'est ton imbrication : table > tr > div > td
Je pense que la div casse la structure de ta table.
Essaye ça :
<table>
<tr>
<th>nom</th>
<th>prenom</th>
</tr>
<tr id='zone'>
</tr>
</table>
Ça devrait marcher, j'ai déjà fait qqch de similaire.
Je pense que la div casse la structure de ta table.
Essaye ça :
<table>
<tr>
<th>nom</th>
<th>prenom</th>
</tr>
<tr id='zone'>
</tr>
</table>
Ça devrait marcher, j'ai déjà fait qqch de similaire.
en effet j'avais essayé cette méthode, le résultat s'affiche bien dans le tableau mais le déforme complètement puisqu'il n'effectue aucun retour à la ligne (tout dans la même ligne).
Merci pour vos réponses,
j'ai essayé le white-space dans mes balises <td> mais ca ne change rien.
Autre problème : le texte retourné par la requete comporte un problème d'accents (surement un souci d'encodage). On dirait que c'est provoqué par l'utilisation d'une requete asynchrone justement car autrement (par une requete SQL classique) tout s'affiche correctement.
j'ai essayé le white-space dans mes balises <td> mais ca ne change rien.
Autre problème : le texte retourné par la requete comporte un problème d'accents (surement un souci d'encodage). On dirait que c'est provoqué par l'utilisation d'une requete asynchrone justement car autrement (par une requete SQL classique) tout s'affiche correctement.
Pour l'autre problème, il faut que tu spécifies l'encodage dans le header de la response.
Par exemple ici j'envoie un fichier xml, encodage europe occidental normal, via php :
header('Content-type: text/xml; charset=iso-8859-1');
Par contre, c'est bizarre que ça t'affiche ça correctement en mode synchrone.
Pour le white-space, vérifie aussi que tu as bien fixé la longueur de tes colonnes (width), sinon elles vont s'étendre à l'infini avant de couper le texte.
Cordialement,
Par exemple ici j'envoie un fichier xml, encodage europe occidental normal, via php :
header('Content-type: text/xml; charset=iso-8859-1');
Par contre, c'est bizarre que ça t'affiche ça correctement en mode synchrone.
Pour le white-space, vérifie aussi que tu as bien fixé la longueur de tes colonnes (width), sinon elles vont s'étendre à l'infini avant de couper le texte.
Cordialement,