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 :
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> 
(...)
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
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");
    }
 
}
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
<?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);
 
?>
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é!!!
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