Je gal�re � comprendre l'�l�ment XMLHTTPRequest ! Apr�s de nombreuses recherches, je me tourne vers ce forum.
Mon but est simple : cr�er un nouvel enregistrement dans ma base de donn�es mysql, puis y enregistrer dans une table le contenu d'un input text; le tout d�s l'appui sur un boutton et sans recharger ma page HTML. Je note que l'appui sur ce boutton ferme la page en cours, pour en ouvrir une nouvelle (inscription_employes_2.php). La m�thode XMLHTTPRequest doit donc s'effectuer entre l'appui sur le boutton submit et le d�chargement de la page en cours.
Je vais vous montrer ce que j'ai fait :
1) du cot� du HTML :
2) du cot� du JAVASCRIPT (inscription_employes.js) :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8 (...) <script language="JavaScript" src="scriptsjavascriptXMLHTTPRequestinscription_employes.js" type="text/JavaScript"></script> (...) <FORM METHOD="POST" ACTION="inscription_employes_2.php" name="form_1" id="form_1"> <label for="login">Login:</label><input type="text" name="login" id="login" /><br /> <input type="submit" name="memo" value="memo" id="memo" onclick="request01(this.form)" /> </FORM> (...)
3) Et enfin du cot� de PHP (enregistrement_employes.php) :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 function request01(f) { var xhr=null; if (window.XMLHttpRequest) { xhr = new XMLHttpRequest(); } else if (window.ActiveXObject) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } //on définit l'appel de la fonction au retour serveur xhr.onreadystatechange = function() { alert_ajax(xhr); }; //on appelle le fichier enregistrement_employes.php xhr.open("GET", "enregistrement_employes.php", true); xhr.send(null); } function alert_ajax(xhr) { if (xhr.readyState==4) { alert ("Requette effectuée"); } }
Voil�, je pense avoir donn� les �l�ments essenciels. Ce qui est bizard, c'est que j'ai bien le message d'internet explorer qui apparait : alert("Requ�te effectu�e !") qui signale que le processus XMLHTTPRequest � fini sont traitement; Mais par contre quand je regarde dans ma table, il n'y a aucun enregistrement suppl�mentaire qui a �t� cr�� et donc je ne trouve pas le login qui devrait �tre enregistr�. Par cons�quent ma SQL n'est pas ex�cut�!!!
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 <?php header('Content-Type: text/xml'); //on connect $dbhost="localhost"; $dbuser="user"; $dbpass="pass"; $dblink=mysql_connect($dbhost,$dbuser,$dbpass); mysql_select_db("base_name",$dblink); //on lance la requete $query = "INSERT employes SET login=123"; //valeur 123 pour simplifier la requette pour l'instant $result = mysql_query($query,$dblink) or die (mysql_error($dblink)); sleep(5); ?>
Ce dont je suis sur c'est que la requette marche si je la teste normalement (sans passer par XMLHTTPRequest). Donc le probl�me viendrait plutot du cot� de mon processus XMLHTTPRequest. D'autre part, m�me en faisant expr� de mettre une erreur dans le script php, celle-ci n'est pas signal�e. Donc j'en d�duit que le script php n'est pris en compte!
Ya-t-il quelque chose que j'ai oubli� dans les �l�ments fondamentaux d'un tel proced� XMLHTTPRequest. Est-ce qu'il faut obligatoirement installer un Framwork sur le serveur? En effet, j'ai vu dans ce forum que l'on parle des Framwork.
Pouvez-vous me donner un coup de main, car j'ai perdu assez de temps la dessus.
Merci beaucoup pour votre aide, cordialement
Partager