scrugeon
Messages postés6Date d'inscriptionlundi 26 janvier 2009StatutMembreDernière intervention30 janvier 2009
-
29 janv. 2009 à 13:33
scrugeon
Messages postés6Date d'inscriptionlundi 26 janvier 2009StatutMembreDernière intervention30 janvier 2009
-
30 janv. 2009 à 10:12
Bonjour tout le monde,
Alors voilà je me lance à la découverte du JS et de l'AJAX et je galère un peu sur un formulaire.
Je vous explique un peu mon problème :
J'ai formulaire qui est contenu dans mon "index.php".
Quand je valide ce formulaire, je lance un vérification en javascript (ça c'est bon ça marche nikel).
Ensuite, si il y a un champ non rempli, j'affiche une alerte (ça marche aussi).
Quand
il n'y a pas d'erreurs, je passe les données du formulaire vers un
second fichier "suite.php" qui à terme fera lui aussi une vérification
des données (en PHP) et entrera les données dans la base.
Voilà
donc le principe. Là où j'ai un problème (dans le fichier "ajax_go.js"
je pense), c'est que je n'arrive pas à faire apparaître le fichier
"suite.php" dans le div prévu à cet effet (nom du div : info).
function getXhr()
{
var xhr = null;
if(window.XMLHttpRequest) // Firefox et autres
xhr = new XMLHttpRequest();
else if(window.ActiveXObject)
{ // Internet Explorer
try
{
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else
{ // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
xhr = false;
}
return xhr;
}
ajax_go.js
function verif_4()
{
// Préparation du message d'erreur
message ="Vous devez remplir le(s) champ(s) suivant(s) :\n\n";
// Initialisation de la variable d'erreur
erreur=0;
// Vérification de la variable nom
if (document.formulaire.nom.value=="")
{
// modification du message d'erreur
message=message+" - nom\n";
// modification de la variable d'erreur
erreur=1;
}
// Vérification de la variable prenom
if (document.formulaire.prenom.value=="")
{
// modification du message d'erreur
message=message+" - prenom\n";
// modification de la variable d'erreur
erreur=1;
}
// Si une erreur a été détectée
if (erreur==1)
{
// On affiche le message
alert(message);
// on renvoie les valeurs saisies par l'utilisateur pour lui éviter de resaisir les infos qu'il a déjà saisi
xhr.open("POST","index.php",true);
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
nom=document.formulaire.nom.value;
prenom=document.formulaire.prenom.value
xhr.send("nom="+nom+"prenom"+prenom);
}
// Si il n'y a pas d'erreur, on charge suite.php dans le div info. C'est donc ici que ça ne marche pas.
if (erreur==0)
{
var xmlHttpReq = false;
var self = this;
// Mozilla/Safari
if (window.xmlHttpRequest)
{
self.xmlHttpReq = new XMLHttpRequest();
}
// IE
else if (window.ActiveXObject)
{
self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}
self.xmlHttpReq.open('POST', 'suite.php', true);
self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
self.xmlHttpReq.onreadystatechange = function()
{
if (self.xmlHttpReq.readyState == 4)
{
document.getElementById("info").innerHTML=(self.xmlHttpReq.responseText);
}
}
nom=document.formulaire.nom.value;
prenom=document.formulaire.prenom.value
xhr.send("nom="+nom+"prenom"+prenom);
}
}
Si quelqu'un pouvait me renseigner sur mon erreur, ce serait super cool.
Merci d'avance pour vos réponses.
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 29 janv. 2009 à 13:43
bonjour,
bah... tu n'aurais pas déjàposé la question ici ?
et personne n'a répondu ?
c'est parce que tu nous colles tout ton code et : démerdez vous !
enfin.. moi c'est pour ça que je n'ai pas répondu
pour ta question, "il suffit" de coller le ?.responseText
dans le innerHTML du div et point barre
pour ton erreur... pas regardé
scrugeon
Messages postés6Date d'inscriptionlundi 26 janvier 2009StatutMembreDernière intervention30 janvier 2009 30 janv. 2009 à 09:33
Bonjour,
En effet, la question y est deux fois.
Désolé d'avoir fait un article qui t'as paru à la va que je t'en fous mais ce n'était pas du tout le but. Il est vrai que j'aurai du couper le code. Je n'ai pas eu de réponses, tant pis. Je saurai mieux m'y prendre pour la prochaine fois que j'aurai une question à poser sur ce forum.
Bul3
Messages postés4933Date d'inscriptionsamedi 1 juillet 2006StatutMembreDernière intervention 2 février 201516 30 janv. 2009 à 09:55
j'ai pourtant répondu pour mettre dans le div !
et tu as quelques erreurs :
1° xhr.send("nom= "+nom+" & prenom"+prenom); si tu veux gérer cela facilement coté php
2° tu fais une requête en asynchrone, ...open(...true)
il faut attendre la réponse de fin de traitement d'ajax et
ne pas tester derrière le send
du style :
....
xml.onreadystatechange = function()
{ if(xml.readyState == 4)
{ on peut traiter xml.responseText; }
}
....
xml.open("POST", "http://www.google.com/translate_t", true);