Formulaire avec AJAX

Bonjour,
Bonjour,[smile]
Je débute en AJAX.
Ma question est la suivante:
Pourquoi ce code fonctionne dans IE7 et pas dans FireFox 3. Et je dois préciser que ça ne marche pas qu'on je passe par l'événement onsubmit. par contre quaund j'utilise un événement onclick d'un bouton ça marche.
Le fichier client.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Client</title>
<script type="text/javascript">
function test(){
	var xhrObj=null;
	if(window.XMLHttpRequest)xhrObj=new XMLHttpRequest();//Firefox
	else if(window.ActiveXObject)xhrObj=new ActiveXObject("Microsoft.XMLHTTP");//Internet Explorer
	else{//XMLHttpRequest non supporté par le navigateur
		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
		return;
	}
	xhrObj.open("POST","serveur.php",true);
	xhrObj.onreadystatechange=function(){
		if(xhrObj.readyState==4){
			alert(xhrObj.responseText);
		}
	}
	xhrObj.setRequestHeader("Content-type","application/x-www-form-urlencoded");
	f=document.getElementById('frm');
	var data="donnee="+f.donnee.value;
	xhrObj.send(data);	
}
</script>
</head>
<body>
<form name="frm" id="frm" enctype="multipart/form-data" method="POST" onsubmit="test()">
<label>Donnée : </label><input type="text" id="donnee" />
<input type="submit" value="OK" />
</form>
</body>
</html>

le fichier serveur.php
<?php
extract($_POST);//le champ nom
echo "La donnee saisie est : ".$donnee;
?>

Merci d'avance

--
Ebnou_Ljabal
Configuration: Windows XP
Firefox 3.0.2

5 réponses

  • Votes
  • Date
  • Date décroissante
  1. oui je confirme que Formallin est très bien !
    Sinon Jquery est top.
    les requetes Ajax sont d'une utilisation enfantine :
    exemple :
    $.ajax({
    url: 'ajax/test.html',
    success: function(data) {
    $('.result').html(data);
    alert('Load was performed.');
    }
    });
    1. Un tutoriel qui va vous aider pour la validation des formulaires :

      http://www.pierrefay.fr/jquery-validate-formulaire-validation-tutoriel-455
      1. Bonsoir,

        ça ne marche pas qu'on je passe par l'événement onsubmit. par contre quaund j'utilise un événement onclick d'un bouton ça marche.

        c'est normal le bouton type submit va envoyer le formualire, alors que tu essaye en parralele d'envoyer les données au script par Ajax

        ne mets pas un bouton submit mais un bouton type button

        c'est justement l'intérêt de Ajax de pouvoir appeler un script sur le serveur sans envoyer le formulaire
        1. Grand merci aux intervenants.

          Alain_42
          Si j’ai bien compris on ne peut pas utiliser AJAX avec l’événement onsubmit dans le navigateur FIREFOX uniquement. Car avec IE7 mon code marche
      2. Bonjour,

        En effet et zzzrod te présente jquery car il permet l'utilisation simplifiée d'AJAX, et quand je dis simplifiée c'est vraiment simplifiée !
        Renseignes-toi ici https://jquery.com/

        Au plaisir ;)
        1. Pourquoi vous n'utilise pas jquery?
          C'est trop facile...
          www.jquery.com
          1. Grand merci aux intervenants.
            zzzrod
            En fait j’utilise ajax pour profiter de la possibilité d’échanger les données avec le serveur sans recharger toute la page.