Evony
Messages postés32Date d'inscriptionmercredi 18 février 2009StatutMembreDernière intervention17 juin 2009
-
16 juin 2009 à 11:10
Evony
Messages postés32Date d'inscriptionmercredi 18 février 2009StatutMembreDernière intervention17 juin 2009
-
17 juin 2009 à 09:35
Bonjour,
Je ne sais pas si je poste au bon endroit
J'ai une page php avec un formulaire contenant une liste avec des employé, une date, une durée, une activité et enfin un commentaire.
J'ai un bouton d'ajout d'activité qui rajoute les infos ci-dessus dans ma base de données ACCESS.
Pour cela j'ai créé un script AJAX qui appelle une 2ème page php pour effectuer la requete sans recharger ma page.
Cepandant, les varaible de mon formulaire ne sont pas transmises par le script, donc tout les champs rajoutés dans ma base de données sont nul.
Ma question est donc comment fair passer les variables d'une page à l'autre via le script ajax.
Evony
Messages postés32Date d'inscriptionmercredi 18 février 2009StatutMembreDernière intervention17 juin 2009 16 juin 2009 à 17:39
je vais tester ton code mais je viens de vérifier je n'ai jamais parler du onready...
bref merci de l'aide je vais tester sa mais j'aurais surement plus le temps de me pencher dessus demain ^^.
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 16 juin 2009 à 18:00
Pour explication... c'est quand même mieux quand on comprend ce qu'on fait... .. .
// J'initialise une requete "mode" (post ou get) vers "monUrl"
// en mode asynchrone (true) ou pas (false), pour l'exemple on va faire en asynchrone,
// grosso modo en synchrone ton objet attend la réponse du serveur avant de changer
// d'état... on envois la requete et on attend... en asynchrone ton objet change d'état en
// fonction de l'état de ta requete (initialisé, envoyée, en attente, réponse reçue) ce qui te permet
// d'executer d'autre action en attente de la réponse... le choix entre l'un et l'autre dépend de tes besoins
xhr_object.open(mode, monUrl, sync);
// l'action a exectuter en fonction du statut de ta requete (principalement pour le mode asynchrone)
// tonObj.readyState te permettant de controler l'état de ta requete (0 pour initialisée à 4 pour fini) et le statut de
// la réponse via obj.statut (c'est le code de réponse http par exemple le fameux 404 not found)...
// et pour finir obj.responseText et obj.responseXml contiennent le resultat de ta requete...
xhr_object.onreadystatechange = function() {
if(xhr_object.readyState == 4) { //on peut traiter xhr_object.responseText...
//ce que renvoie le php
}
}
// on crée un header http content-type pour prevenir le serveur que les valeurs seront encvodées
xhr_object.setRequestHeader("Content-type","application/x-www-form-urlencoded");
// on envois la requete...
xhr_object.send(paramètres);
Je te conseil de lire avant tout de la doc et de faire quelques tests genre pendant 1 ou 2 heures... commence indépendament de ton projet juste des petits bouts de code comme celui que je viens de te donner et de celui des articles que tu lis... et ensuite seulement tu t'attaque à ton truc parce que si derrière tu as des erreurs sql ou autre tu va devoir faire un debugage multiple et debuguer 3 langages différent (javascript, php et sql) en même temps quand on a pas les connaissances c'est folklo... qui plus est on ne peut pas bien coder si on ne comprend pas ce que l'on fait et pourquoi on le fait... et si c'est 1 ou deux heures de perdu crois tu les regagnera après en évitant ce genre de pertes de temps (posts multiple sur le forum)... .. . ;o)
@ tchaOo°
l'homme est un loup pour l'homme... .. .
Vous n’avez pas trouvé la réponse que vous recherchez ?
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 16 juin 2009 à 18:04
oups ça sera mieux comme ça... on peut toujours pas éditer/supprimer nos propres posts... .. . :o(
// J'initialise une requête "mode" (post ou get) vers "monUrl"
// en mode asynchrone (true) ou pas (false), pour l'exemple on va faire en asynchrone,
// grosso modo en synchrone ton objet attend la réponse du serveur avant de changer
// d'état... on envois la requête et on attend... en asynchrone ton objet change d'état en
// fonction de l'état de ta requête (initialisé, envoyée, en attente, réponse reçue) ce qui te permet
// d'exécuter d'autre action en attente de la réponse... le choix entre l'un et l'autre dépend de tes besoins
xhr_object.open(mode, monUrl, sync); // l'action à exécuter en fonction du statut de ta requête (principalement pour le mode asynchrone)
// tonObj.readyState te permettant de contrôler l'état de ta requête (0 pour initialisée à 4 pour fini) et le statut de
// la réponse via obj.statut (c'est le code de réponse http par exemple le fameux 404 not found)...
// et pour finir obj.responseText et obj.responseXml contiennent le résultat de ta requête...
xhr_object.onreadystatechange = function() {
if(xhr_object.readyState == 4) {
// traitement
}
}
// on crée un header http content-type pour prévenir le serveur que les valeurs seront encodées xhr_object.setRequestHeader("Content-type","application/x-www-form-urlencoded");
// on envois la requête...
xhr_object.send(paramètres);
quand tu teste ta fonction tu dois y mettre quelque chose sinon c'est normal qu'en face le serveur ne reçoive rien... .. .
si tu avais mis quelque chose ça veut dire que ton serveur ne semble rien recevoir... as tu installé firebug... si oui click sur le cafard en bas à droite de firefox active la console et le débugage de script et ensuite valide ton formulaire et regarde si la requête part et avec quelles valeurs... .. .
Evony
Messages postés32Date d'inscriptionmercredi 18 février 2009StatutMembreDernière intervention17 juin 2009 16 juin 2009 à 18:21
ok merci des explications je regarderai demain matin a la 1ère heure car le j'ai plus accès a mon poste étant rentrer à l'instant, je te retient au courant.
Merci
Evony
Messages postés32Date d'inscriptionmercredi 18 février 2009StatutMembreDernière intervention17 juin 2009 17 juin 2009 à 09:14
J'ai regardé avec firebug, le script marche correctement, mais j'ai l'impression que c'est vraiment la reception des données dans ma 2ème page php qui plante