Valider un formulaire avec XMLHttpRequest

Le
Pascal Bourdais
Bonjour,

Je créé un formulaire sur lequel il y a une saisie login/mdp. Pour
changer un peu, je voulais valider ça avec XMLHttpRequest

J'ai donc :
reserv.php
*-*-*-*-*-*
<head>

<script src="valid.js" type="text/javascript"></script>

<>
<form class="info" action="index.php" method="post"
name="fuser" id="fuser"
onsubmit="return validate(document.fuser.login.value,
document.fuser.passwd.value);" >
<>

valid.js
*-*-*-*-*-*
function createXhrObject()
{
if (window.XMLHttpRequest) return new XMLHttpRequest();

if (window.ActiveXObject) {
var names = [
"Msxml2.XMLHTTP.6.0",
"Msxml2.XMLHTTP.3.0",
"Msxml2.XMLHTTP",
"Microsoft.XMLHTTP"
];
for(var i in names) {
try{ return new ActiveXObject(names[i]); }
catch(e){}
}
}
window.alert("Votre navigateur ne prend pas en charge l'objet
XMLHTTPRequest.");
return null; // non supporté
}

function validate(login, passwd)
{

var res = false;
var xhr_object = createXhrObject();
if (xhr_object == null)
return res;

var filename = "validate_login.php";
var s1 = login;
var s2 = passwd;
var data = null;

data = "login="+s1+"&passwd="+s2;

xhr_object.open("POST", filename, true);

xhr_object.onreadystatechange = function() {
if(xhr_object.readyState == 4) {
var tmp = xhr_object.responseText.split(":");
if (tmp[0] == "1") {
return true;
}
}
return false
}

xhr_object.setRequestHeader("Content-type",
"application/x-www-form-urlencoded");
xhr_object.send(data);

return res;
}

Si je fait un alert dans la fonction onreadystatechange, je recupère
bien les valeurs que j'attends, mais la validation du formulaire ne
fonctionne pas. Evidemment, il récupère le code retour de validate, et
non pas celui de la fonction onready

Il y a moyen de faire ça ?

Merci

Pascal.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Pascal
Le #20892261
Pascal Bourdais a écrit :
Bonjour,



Bonjour,

Je créé un formulaire sur lequel il y a une saisie login/mdp. Pour
changer un peu, je voulais valider ça avec XMLHttpRequest



Si c'est juste pour changer, c'est toujours un peu risqué... ;-)

<form class="info" action="index.php" method="post"
name="fuser" id="fuser"
onsubmit="return validate(document.fuser.login.value,
document.fuser.passwd.value);" >



Il y a plusieurs façons de faire mais, déjà, je n'aurais pas géré la
soumission du formulaire à cet endroit.

xhr_object.onreadystatechange = function() {
if(xhr_object.readyState == 4) {
var tmp = xhr_object.responseText.split(":");
if (tmp[0] == "1") {
return true;
}
}
return false
}



Je pense qu'il faudrait plutôt la gérer dans la fonction liée à
"onreadystatechange ".
Donc, en fin de formulaire, un simple bouton avec un évènement "oncli ck"
qui déclenche l'appel XHR, et non pas de submit qui, lui, sera déclen ché
par la fonction susdite.

Merci



De rien.
Cordialement,
Pascal (aussi)
Publicité
Poster une réponse
Anonyme