[AJAX] XMLHTTPRequest => impossible d'ex�cuter tout script php
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:
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:
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:
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