[AJAX/PHP] - récupération de paramètres GET
Fermé
TheLostMind
Messages postés
6
Date d'inscription
jeudi 27 novembre 2008
Statut
Membre
Dernière intervention
29 novembre 2008
-
27 nov. 2008 à 20:30
TheLostMind Messages postés 6 Date d'inscription jeudi 27 novembre 2008 Statut Membre Dernière intervention 29 novembre 2008 - 29 nov. 2008 à 20:57
TheLostMind Messages postés 6 Date d'inscription jeudi 27 novembre 2008 Statut Membre Dernière intervention 29 novembre 2008 - 29 nov. 2008 à 20:57
A voir également:
- [AJAX/PHP] - récupération de paramètres GET
- Parametres de mon ordinateur - Guide
- Paramètres de confidentialité - Guide
- Convertisseur récupération de texte - Guide
- Easy php - Télécharger - Divers Web & Internet
- Get data back - Télécharger - Récupération de données
3 réponses
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
27 nov. 2008 à 20:40
27 nov. 2008 à 20:40
Bonsoir,
2 choses:
il te manque un bout de code dans ta foonction Ajax, la partie test et traitement si la réponse et arrivée
regarde bien les tutos il faut:
ensuite si tes echo du script php n'apparaissent pas directement dans ta page, il faut mettre une alert sur la réponse dans la fonction javascript
2 choses:
il te manque un bout de code dans ta foonction Ajax, la partie test et traitement si la réponse et arrivée
regarde bien les tutos il faut:
http_request.onreadystatechange = function() { if (http_request.readyState == 4) { if (http_request.status == 200) { etc... la tu ecris dans ta page } } }
ensuite si tes echo du script php n'apparaissent pas directement dans ta page, il faut mettre une alert sur la réponse dans la fonction javascript
TheLostMind
Messages postés
6
Date d'inscription
jeudi 27 novembre 2008
Statut
Membre
Dernière intervention
29 novembre 2008
27 nov. 2008 à 21:27
27 nov. 2008 à 21:27
Re-bonjour et merci pour cette réponse rapide.
J'ai fait les modifications conseillées (et j'ai relu les tuto AJAX) mais rien n'y change. J'ai toujours le même problème. Voici les modifs que j'ai fait dans le code javascript :
J'ai toujours le même problème : le requete GET ne se fait pas. (elle devrait pourtant se faire même si la méthode xmlHttp.onreadystatechange n'est pas éxécutée ?).
Toujours aucune trace dans FireBug de cette requete GET.
En ce qui concerne mon echo sur la page "index.php", il s'affiche bien dans la page. Je ne pense pas que le problème vienne de là.
Merci encore.
TheLostMind.
J'ai fait les modifications conseillées (et j'ai relu les tuto AJAX) mais rien n'y change. J'ai toujours le même problème. Voici les modifs que j'ai fait dans le code javascript :
function ValidImg(id,var1,var2) { xmlHttp=GetXmlHttpObject() if (xmlHttp==null) { alert ("Browser does not support HTTP Request") return } else { alert("on rentre ds la boucle"); //ça marche xmlHttp.onreadystatechange=ReadyValidImg(var1,var2) ; var url="index.php"; url=url+"?id="+id+"&var1="+var1+"&var2="+var2; xmlHttp.open("GET",url,true); xmlHttp.send(null); } } function ReadyValidImg(var1,var2) { if (xmlHttp.readyState==4) { if (http_request.status == 200) { alert("on rentre ds readyState"); //ne marche pas document.getElementById(var1).src="blabla"; document.getElementById(var2).innerHTML = "blabla" } } }
J'ai toujours le même problème : le requete GET ne se fait pas. (elle devrait pourtant se faire même si la méthode xmlHttp.onreadystatechange n'est pas éxécutée ?).
Toujours aucune trace dans FireBug de cette requete GET.
En ce qui concerne mon echo sur la page "index.php", il s'affiche bien dans la page. Je ne pense pas que le problème vienne de là.
Merci encore.
TheLostMind.
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
27 nov. 2008 à 22:45
27 nov. 2008 à 22:45
xmlHttp.onreadystatechange=ReadyValidImg(var1,var2) ;
il faut:
perso je n'utilise pas la methode GET mais POST
et bien sur dans ton script php tu récupères par $_POST au lieu de $_GET
il faut:
xmlHttp.onreadystatechange= function () { ReadyValidImg(var1,var2) } ;//affectation fonction appelée qd on recevra la reponse
perso je n'utilise pas la methode GET mais POST
........ // lancement de la requete http_request.open('POST', url, true); //changer le type MIME de la requête pour envoyer des données avec la méthode POST , !!!! cette ligne doit etre absolument apres http_request.open('POST'.... http_request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); data=id="+id+"&var1="+var1+"&var2="+var2; http_request.send(data);
et bien sur dans ton script php tu récupères par $_POST au lieu de $_GET
TheLostMind
Messages postés
6
Date d'inscription
jeudi 27 novembre 2008
Statut
Membre
Dernière intervention
29 novembre 2008
>
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
28 nov. 2008 à 01:01
28 nov. 2008 à 01:01
Merci beaucoup Alain pour ton aide... on avance. Malheureusement, je n'arrive toujours pas à récupérer ces paramètres var1 et var 2. Voici les modifs sur les fonctions Js que j'ai fait suite à ton post :
Et voici, pour rappel, comment je récupère mes paramètres var1 et var2 de la requete POST :
Mon pb : je ne passe pas dans cette boucle.
Dans FireBug, je vois la requete POST avec les bonnes variables (var1 et var2) et avec un statut "200 OK". Pourquoi ces variables ne passent pas la condition "isset" ??
Pour info, ce code PHP est situé au début de la page (avant l'appel de la fonction ValidImg par le onclick). Est-ce que cela change qqchose ?
Merci par avance.
TheLostMind.
function ValidImg(id,var1,var2) { xmlHttp=GetXmlHttpObject() if (xmlHttp==null) { alert ("Browser does not support HTTP Request") return } else { xmlHttp.onreadystatechange= function () { ReadyValidImg(var1,var2) } ; var url="descriptionSpectacles.php"; // lancement de la requete xmlHttp.open('POST', url, true); xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); var data="id="+id+"&c="+c+"&l="+l; xmlHttp.send(data); } } function ReadyValidImg(var1,var2) { if (xmlHttp.readyState==4) { alert("Alert"); //marche document.getElementById(var1).src="Blabla"; document.getElementById(var2).innerHTML = "blabla"; } }
Et voici, pour rappel, comment je récupère mes paramètres var1 et var2 de la requete POST :
if ((isset($_POST['var1'])) && (isset($_POST['var2']))) { echo "passage de parametres par post OK"; fctPHP(var1,var2); }
Mon pb : je ne passe pas dans cette boucle.
Dans FireBug, je vois la requete POST avec les bonnes variables (var1 et var2) et avec un statut "200 OK". Pourquoi ces variables ne passent pas la condition "isset" ??
Pour info, ce code PHP est situé au début de la page (avant l'appel de la fonction ValidImg par le onclick). Est-ce que cela change qqchose ?
Merci par avance.
TheLostMind.
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
>
TheLostMind
Messages postés
6
Date d'inscription
jeudi 27 novembre 2008
Statut
Membre
Dernière intervention
29 novembre 2008
28 nov. 2008 à 09:29
28 nov. 2008 à 09:29
Bonjour,
// lancement de la requete
xmlHttp.open('POST', url, true);
url n'est pas définie
il faut soit que tu passes l'url du script php appelé en argument à la fonction, soit que tu le mettes en "dur" dans ta fonction
// lancement de la requete
xmlHttp.open('POST', url, true);
url n'est pas définie
il faut soit que tu passes l'url du script php appelé en argument à la fonction, soit que tu le mettes en "dur" dans ta fonction
TheLostMind
Messages postés
6
Date d'inscription
jeudi 27 novembre 2008
Statut
Membre
Dernière intervention
29 novembre 2008
>
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
28 nov. 2008 à 15:59
28 nov. 2008 à 15:59
Bonjour,
j'avais défini l'url juste au dessus du lancement de la requete :
Le problème reste là.
Merci pour votre aide.
TheLostMind
j'avais défini l'url juste au dessus du lancement de la requete :
xmlHttp.onreadystatechange= function () { ReadyValidImg(var1,var2) } ; var url="descriptionSpectacles.php"; // lancement de la requete xmlHttp.open('POST', url, true); xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
Le problème reste là.
Merci pour votre aide.
TheLostMind
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
28 nov. 2008 à 20:45
28 nov. 2008 à 20:45
Utilises tu la console d'erreur du menu Outils de FireFox ?
quel mesage d'erreur te donnes -t-elle ?
quel mesage d'erreur te donnes -t-elle ?
TheLostMind
Messages postés
6
Date d'inscription
jeudi 27 novembre 2008
Statut
Membre
Dernière intervention
29 novembre 2008
29 nov. 2008 à 20:57
29 nov. 2008 à 20:57
Non, je n'utilisais pas cette console d'erreur...je viens de découvrir son existence. Je vais y jeter un coup d'oeil plus souvent maintenant. Merci !
Pour le pb, j'ai décidé d'abandonner le traitement en AJAX et de le faire en simple PHP (moins de fonctionnalités mais je "maîtrise" mieux) parce que ma deadline de projet s'approche dangereusement.
Merci pour ton aide Alain. Je reviendrai certainement au problème quand je n'aurai plus de contrainte de temps.
TheLostMind.
Pour le pb, j'ai décidé d'abandonner le traitement en AJAX et de le faire en simple PHP (moins de fonctionnalités mais je "maîtrise" mieux) parce que ma deadline de projet s'approche dangereusement.
Merci pour ton aide Alain. Je reviendrai certainement au problème quand je n'aurai plus de contrainte de temps.
TheLostMind.