Simple Ajax Jquery script Comment puis-je obtenir de l'information pour chacune des lignes de la table?
Je suis un simple ajax>php>mysql exemple posté ici http://openenergymonitor.org/emon/node/107
Je peut afficher uniquement les informations de la première ligne.
Ma table est définie comme
--------------
| id | name|
--------------
| 1 | Pat |
| 2 | Joe |
| 3 | Rob |
--------------
Le code php
$result = mysql_query("SELECT * FROM $tableName"); //query
$array = mysql_fetch_row($result); //fetch result
echo json_encode($array);
Le script
$(function ()
{
$.ajax({
url: 'api.php', data: "", dataType: 'json', success: function(data)
{
var id = data[0]; //get id
var vname = data[1]; //get name
$('#output').html("<b>id: </b>"+id+"<b> name: </b>"+vname);
}
});
});
LIGNE 1
Si je mets de la var id = data[0];
j'obtiens la valeur 1.
Si je mets de la var name = data[1];
- je obtenir Pat.
Les LIGNES 2 n 3 ne sont pas définis
Exemple var id=data[2];
renvoie undefined
etc
Mes Questions
-
Pourquoi ne puis-je obtenir les valeurs de la première ligne?
-
Comment puis-je obtenir de l'information pour les lignes autres que le premier?
D'autres questions sur Stackoverflow, je vois que je vais probablement utiliser une boucle while, mais je ne suis pas vraiment sûr de savoir pourquoi ou comment.
Pouvez-vous accéder à la page php, seul, au lieu de le faire par requête ajax et dites-nous ce que le json echo imprime sur l'écran?
Merci. J'ai essayé mysql_fetch_array mais il retourna encore non définie pour les données[2], [3],etc
Costa j'ai ["1","Pat"]
Par la façon dont
mysql_fetch_*
retour des fonctions de seulement 1 ligne!
OriginalL'auteur TryHarder | 2011-11-05
Vous devez vous connecter pour publier un commentaire.
L'ancienne extension MySQL
mysql
est obsolète, une meilleure utilisationmysqli
ouPDO
!mysql_fetch_row()
renvoie seulement 1 ligne!Vous devez le mettre dans une boucle, par exemple:
Vous devez également modifier le JavaScript:
Par la façon dont je vous recommande d'utiliser
mysql_fetch_assoc()
, car il rend votre code plus souple et plus propre.Désolé, c'était de ma faute! J'ai édité le code.
Vous êtes les bienvenus 😉
est-il possible d'ajouter l'actualisation automatique à la présente , pour vous rafraîchir la div, table , etc. quel que soit l'objet est à un intervalle défini, comme les 5 secondes. ?
Oui, c'est possible. Il y aurait 2 techniques: a Pull régulièrement les données à partir du serveur (script PHP). Utiliser soit "normal" requête AJAX et window.setInterval() ou utiliser les d'interrogation longue. b) Commande les données, c'est à dire utiliser les WebSockets. Il y a beaucoup de bonnes ressources sur l'internet, par exemple: websocket.org
OriginalL'auteur ComFreek
$result = mysql_query("SELECT * from $tableName");
$array = array(mysql_fetch_row($result));
while($row = mysql_fetch_row($result)) { $tableau[] = $row; } echo json_encode($array);
OriginalL'auteur Elfaks