[AJAX] Tuto trop flou
jiantox
Messages postés
1092
Date d'inscription
Statut
Membre
Dernière intervention
-
jiantox Messages postés 1092 Date d'inscription Statut Membre Dernière intervention -
jiantox Messages postés 1092 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
voilà jme met au AJAX "grace" à un tuto de chez xul, mais il est tres flou et on s'y perd tres vite quand on apprend ( ce qui est un probleme dans un tuto justement )
du coup jme retrouve avec ceci :
un fichier ajax.js
et je ne sais pas ou je dois metre mon fichier.php qui contiens le code que je veux ( je veut le faire marcher en appel onload="" dans le body et un setTimeout() régulier pour rafraichir regulierement.
Je ne sais pas non plus comment récupérer le resultat de mon .php ( qui contiendra une requette sql donc une multitude de resultat ( il y aura un while pour récupérer l'integralité de la table )
Quelqu'un peut m'éclairer ne serais-ce qu'un petit peu ?
Merci beaucoup d'avance, je nage dans la vase ^^
voilà jme met au AJAX "grace" à un tuto de chez xul, mais il est tres flou et on s'y perd tres vite quand on apprend ( ce qui est un probleme dans un tuto justement )
du coup jme retrouve avec ceci :
un fichier ajax.js
function createXHR() { var request = false; try { request = new ActiveXObject('Msxml2.XMLHTTP'); } catch (err2) { try { request = new ActiveXObject('Microsoft.XMLHTTP'); } catch (err3) { try { request = new XMLHttpRequest(); } catch (err1) {request = false; } } } return request; }
et je ne sais pas ou je dois metre mon fichier.php qui contiens le code que je veux ( je veut le faire marcher en appel onload="" dans le body et un setTimeout() régulier pour rafraichir regulierement.
Je ne sais pas non plus comment récupérer le resultat de mon .php ( qui contiendra une requette sql donc une multitude de resultat ( il y aura un while pour récupérer l'integralité de la table )
Quelqu'un peut m'éclairer ne serais-ce qu'un petit peu ?
Merci beaucoup d'avance, je nage dans la vase ^^
A voir également:
- [AJAX] Tuto trop flou
- Tuto tableau croisé dynamique - Guide
- Tuto chromecast - Guide
- Tuto torrent - Guide
- Tuto rufus windows 11 - Guide
- Tuto table des matières word - Guide
3 réponses
Ci-dessous le code complet pour une utilisation simple d'Ajax. Tu n'as plus qu'à modifier le nom de la page php que tu souhaites appeler, et à traiter les données de retour (xhr.responseText)
Dans ta page PHP, le résultat de ta requête est renvoyée à ta fonction JS avec un simple echo (tu dois donc effectuer la mise en forme dans ta page PHP, ou si tu ne transmets que des variables, les concaténer de façon a pouvoir les récupérer facilement pour ton traitement JS, par exemple concaténer tes variables avec un caractère de séparation, et les dé-concaténer dans le JS avec la méthode split() ).
var xhr; if (window.XMLHttpRequest) { xhr = new XMLHttpRequest(); } else if (window.ActiveXObject) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } xhr.onreadystatechange = function() { if (xhr.readyState==4 && xhr.status==200) { // traitement des données de retour // xhr.responseText; } }; //on appelle le fichier addspecialite.php xhr.open("GET", "ici_j_appelle_ma_page_php", true); xhr.send(null);
Dans ta page PHP, le résultat de ta requête est renvoyée à ta fonction JS avec un simple echo (tu dois donc effectuer la mise en forme dans ta page PHP, ou si tu ne transmets que des variables, les concaténer de façon a pouvoir les récupérer facilement pour ton traitement JS, par exemple concaténer tes variables avec un caractère de séparation, et les dé-concaténer dans le JS avec la méthode split() ).
Salut et merci de ta reponse,
j'ai essayé de metre ceci en place mais je n'obtiens rien :
look.php me ressort bien test£test£test sur plusieurs lignes, mais l'index.php ( le js ) ne ressort rien.
Pourrais-tu m'expliquer comment gérer les réponses ( coté js ) ?
Et surtout comment faire pour que je puisse afficher l'integralité de la base ( un while dans le js ? )
Merci beaucoup de ton aide
j'ai essayé de metre ceci en place mais je n'obtiens rien :
<script> var xhr; if (window.XMLHttpRequest) { xhr = new XMLHttpRequest(); } else if (window.ActiveXObject) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } xhr.onreadystatechange = function() { if (xhr.readyState==4 && xhr.status==200) { // traitement des données de retour // xhr.responseText; var chaine = xhr.responseText; var tableau = chaine.split('£'); document.getElementById('look').innerHTML = tableau[0]+' • '+tableau[1]+' • '+tableau[2]; } }; //on appelle le fichier addspecialite.php xhr.open("GET", "look.php", true); xhr.send(null); </script><code> et dans mon look.php : <code><? include('/xxxx/xx/www/cfg2/opt.php'); $chk = $bdd->query("SELECT * FROM look"); while($chk2=$chk->fetch()) { echo $chk2[0].'£ '.$chk2[1].'£'.$chk2[2].'<br/>'; } ?>
look.php me ressort bien test£test£test sur plusieurs lignes, mais l'index.php ( le js ) ne ressort rien.
Pourrais-tu m'expliquer comment gérer les réponses ( coté js ) ?
Et surtout comment faire pour que je puisse afficher l'integralité de la base ( un while dans le js ? )
Merci beaucoup de ton aide
Nan bah j'ai trouvé en fait rien de plus simple, j'ai tout mis en forme sous php, ça ressort tout en propre sous js :
et le php :
et tout roule :)
Merci à toi ;)
function look() { var xhr; if (window.XMLHttpRequest) { xhr = new XMLHttpRequest(); } else if (window.ActiveXObject) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } xhr.onreadystatechange = function() { if (xhr.readyState==4 && xhr.status==200) { // traitement des données de retour // xhr.responseText; var chaine3 = xhr.responseText; document.getElementById('look').innerHTML = chaine3; } }; //on appelle le fichier addspecialite.php xhr.open("GET", "look.php", true); xhr.send(null); setTimeout("look()", 1000); }
et le php :
<? include('/xx/xxxxx/www/cfg2/opt.php'); $chk = $bdd->query("SELECT * FROM look"); while($chk2=$chk->fetch()) { echo $chk2[0].' | '.$chk2[1].' | '.$chk2[2].'<br/>'; } ?>
et tout roule :)
Merci à toi ;)
autant pour moi y'a un probleme..
Pour que mon index.php s'actualise, il faut que j'ouvre la page look.php ( quand le js l'apel ça a l'air de ne pas faire de modifications, il faut que j'ouvre le look.php pour que le js change :/ )
est-ce que ça viendrais d'ici :
xhr.open("GET", "look.php", true);
xhr.send(null);
?
Pour que mon index.php s'actualise, il faut que j'ouvre la page look.php ( quand le js l'apel ça a l'air de ne pas faire de modifications, il faut que j'ouvre le look.php pour que le js change :/ )
est-ce que ça viendrais d'ici :
xhr.open("GET", "look.php", true);
xhr.send(null);
?
non mais il est bien retourné la réponse voulu sur la page look.php
le probleme c'est que le rafraichissement se fais bien sur mon index.php mais sans prendre en compte le look.php ( qui lui récupere juste l'integralité d'une table ).
et pour que le rafraichissement de l'index affiche bien les modification du look.php il faut que j'actualise le look.php :/
Si je l'actualise pas moi meme le contenu de l'index reste le meme ( alors que le contenu de la base a changé et donc le look.php devrai ressotir les nouvelles informations )
le probleme c'est que le rafraichissement se fais bien sur mon index.php mais sans prendre en compte le look.php ( qui lui récupere juste l'integralité d'une table ).
et pour que le rafraichissement de l'index affiche bien les modification du look.php il faut que j'actualise le look.php :/
Si je l'actualise pas moi meme le contenu de l'index reste le meme ( alors que le contenu de la base a changé et donc le look.php devrai ressotir les nouvelles informations )