Forums Développement Multimédia

Aller au contenu

Formulaire Ajax qui recharge la page sous IE

CODE Ajax JQuery EaseJs

1 réponse à ce sujet

#1 obefa

    Ceinture Bleue

  • Members
  • PipPipPipPipPip
  • 91 messages

Posté 13 October 2008 - 15:08 PM

Bonjour,

j'ai un petit souci avec un formulaire dynamique.

J'utilise un script pour valider les champs du formulaire obligatoire, puis si OK j'envoie une requete en Ajax pour envoyer mail via PHP.

tout fonctionne très bien sous Firefox et Safari, mais bien sur rien ne fonctionne sous IE.

Sous IE, dès que je clique sur le bouton envoyer, toute la page est rechargée, sans même valider le formulaire.. J'ai retourné le pb dans tous les sens et je ne vois pas de solution. Ci après le code utilisé :
Citation
// ENVOI REPONSE

function checkReponse(reponse,email,nom, balise) {

var msg2 = "";

if (document.formulaire2.email.value != "") {
indexAroba = document.formulaire2.email.value.indexOf('@');
indexPoint = document.formulaire2.email.value.indexOf('.');
if ((indexAroba < 0) || (indexPoint < 0)) {
document.formulaire2.email.style.backgroundColor = "#ABCE3F";
msg2 += "Le courriel est incorrect\n";
}
}
else {
document.formulaire2.email.style.backgroundColor = "#ABCE3F";
msg2 += "Veuillez saisir votre courriel.\n";
}

if (document.formulaire2.nom.value == "") {
msg2 += "Veuillez saisir votre nom\n";
document.formulaire2.nom.style.backgroundColor = "#ABCE3F";
}


if (document.formulaire2.reponse.value == "") {
msg2 += "Veuillez saisir votre réponse\n";
document.formulaire2.reponse.style.backgroundColor = "#ABCE3F";
}

if (msg2 == "") {
EnvoiReponse(reponse,email,nom, balise);
return false;

}
else {
alert(msg2);
return false;

}
}

// fonction ajax pour envoi de données

function EnvoiReponse(reponse,email,nom, balise)
{
var OAja;
if (window.XMLHttpRequest) OAja = new XMLHttpRequest();
else if (window.ActiveXObject) OAja = new ActiveXObject('Microsoft.XMLHTTP');
else { // XMLHttpRequest non supporté par le navigateur
alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
return;
}
OAja.open('POST',"enregistreReponse.php",true);
OAja.onreadystatechange = function()
{
if (OAja.readyState == 4 && OAja.status==200)
{
if (document.getElementById)
{
OpenPointInfo ("displayinfos.php?cacheFormulaire=1&message2=!! merci de votre avis !!&balise=" + balise);
}
}
}
OAja.setRequestHeader('Content-type','application/x-www-form-urlencoded');
OAja.send('&nom='+nom+'&reponse='+reponse+'&email='+email+'&balise='+balise);
}


merci de votre réponse !


#2 obefa

    Ceinture Bleue

  • Members
  • PipPipPipPipPip
  • 91 messages

Posté 13 October 2008 - 16:14 PM

Alors autant pour moi, le pb n'était pas à ce niveau là.

je poste quand même la solution, cela peut servir à d'autres personnes....

mon formulaire était aussi appelé par un requête ajax dans une page php sous la forme :

Citation
echo "<form method='post' name='formulaire2' onSubmit='return checkReponse(this.reponse.value,this.email.value,this.nom.value,".$balise.");'>";


Et en fait IE ne prenait pas en compte le script de onSubmit.. du coup j'ai rajouté un 'java script:....' ce qui donne ;
Citation
echo "<form method='post' name='formulaire2' onSubmit='java script:return checkReponse(this.reponse.value,this.email.value,this.nom.value,".$balise.");'>";


et là tout fonctionne....



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)