IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[AJAX] XMLHTTPRequest => impossible d'ex�cuter tout script php


Sujet :

JavaScript

  1. #1
    Membre confirm� Avatar de AzertyH
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    90
    D�tails du profil
    Informations personnelles :
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Par d�faut [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 : 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

  2. #2
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 888
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 888
    Par d�faut
    Salut,

    Change ton bouton submit en button, car j'ai l'impression que vu que c'est un bouton submit, il va valider le formulaire trop rapidement avant que ta requ�te ne soit effectu�e..

    A+

  3. #3
    Membre confirm� Avatar de AzertyH
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    90
    D�tails du profil
    Informations personnelles :
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Par d�faut
    Merci pour ta r�ponse car je me sentais un peu seul depuis ce matin � propos de mon probl�me vraiment incompr�hensible !

    Malheureusement j'ai d�j� essay� de faire ce que tu me propose comme solution, et le r�sultat est le m�me.

    Pour r�sumer mon probl�me :
    - le script javascript est bel est bien ex�cut� : la preuve, car j'ai bien le message qui me dit : "Requette effectu�e".

    - Ce qui ne marche pas c'est l'ex�cution de mon script php, appel� par le script javascript (XMLHTTPRequest)

    Merci et j'esp�re qu'on va essayer de r�soudre ce probl�me qui me bloque dans mon d�veloppement.

  4. #4
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 888
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 888
    Par d�faut
    Euh, pourquoi : xhr_object.send(null); ?

  5. #5
    Membre confirm� Avatar de AzertyH
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    90
    D�tails du profil
    Informations personnelles :
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Par d�faut
    Ben chez pas trop, car je d�bute en Ajax. Si je l'enl�ve, sa marche pas je crois. J'ai compris que cette instruction servait � r�cup�rer des infos provenant de mon script php, afin de les renvoyer dans mon formulaire HTML.
    Mais l� je ne veux pas r�cup�rer la moindre info de mon script php, car dans ce script je cr�ais seulement un nouvel enregistrement dans ma base de donn�e.

    Enfin, j'ai peut �tre mal compris. Dans ce cas pouvez vous me l'expliquer svp?

    Dautre part, j'ai essayer de remplacer tout le contenu de mon script php par ceci :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    <?php
    header('Content-Type: text/xml');
     
    sleep(5);
     
    ?>
    Ainsi, si le script fonctionnait alors je devrais voir un temps de pause de 5 secondes avant que la suite se produise (changement de page submit() ). Mais comme je l'ai d�j� dit, mon script php ne s'ex�cute en aucun cas, donc rien ne se passe.

    �a vient de quoi ce probl�me zarb ?

    Merci pour votre participation

  6. #6
    Membre confirm� Avatar de AzertyH
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    90
    D�tails du profil
    Informations personnelles :
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Par d�faut
    Bonjour,

    �a y est je viens de comprendre mon probl�me. En fait, j'arrive � ex�cuter mon script php! Ce que je ne savais pas, c'est qu'il fallait que je ferme mon navigateur et que je le r�ouvre. Ensuite en apuyant sur mon button faisant appel � la fonctionnalit� XMLHTTPRequest, mon script php est pris en compte.

    C'est bien beau d'avoir compris sa, mais cela ne m'arrange pas!...

    En effect pour que mon syst�me soit imp�cable, il faudrait que mon script php s'ex�cute � chaque fois que je fait appel � lui par l'interm�diaire de XMLHTTPRequest et sans fermer puis r�ouvrir mon navigateur!

    J'esp�re qu'il y a une solution � ce soucis.

    Si vous n'avez pas compris ce que j'ai voulut dire, rendez-vous sur ce lien :

    http://gael-donat.developpez.com/web...ax/index5.html

    Cet exemple, fait appel � un script php par l'interm�diaire de XMLHTTPRequest. Je l'ai trouv� dans un tuto de developper.com :
    http://gael-donat.developpez.com/web/intro-ajax/#LIII-B

    En testant cette exemple, vous voyez un message d'attente affich� � l'�cran (qui vous signale que le script php n'est pas encore termin�). Ok c'est bien, �a marche! Mais apr�s, si vous refaite la manip, et bien le script php n'est pas r�ex�cut� et le message d'attente n'est donc pas r�afich� � l'�cran. Par contre pour pouvoir r�ex�cuter ce script php, il faut fermer, puis r�ouvrir le navigateur.

    Si y a une solution pour faire marcher le script php sans fermer puis r�ouvrir le navigateur, pouvez-vous me la communiquer svp?

    Merci pour votre aide, cordialement

  7. #7
    Membre confirm� Avatar de AzertyH
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    90
    D�tails du profil
    Informations personnelles :
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Par d�faut
    en fait j'ai l'impression qu'il s'ajit d'un probl�me d'initialisation, permettant de "signaler que l'on peut ex�cuter le script php". C'est peut �tre une variable � mettre � zero, enfin je sais pas encore.

    Les connaisseurs, aidez moi svp!

  8. #8
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 888
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 888
    Par d�faut
    Azertyh,

    Selon ce que je vois, je suis surpris que tu fasses un send avec null. Il faudrait transmettre les valeurs � poster dans ton send.

    Sinon, normalement, chaque requ�te r�cup�re le fichier PHP; Il se peut que ton navigateur detecte que ta page PHP est en cache, et donc ne refait plus la requ�te; Essaie d'envoyer les header php qui vont bien pour la non prise en compte du cache. ( Pragma: no-cache si je ne m'abuse )

    Ca devrait mieux fonctionner en prenant tout �a en compte.

    Bonne chance !

    A+

  9. #9
    Membre confirm� Avatar de AzertyH
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    90
    D�tails du profil
    Informations personnelles :
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Par d�faut
    Ne sois pas surpris de mon send(null), car j'ai tout b�tement copier/coll� ce code du tuto de developper.com !

    D'ailleurs, dans le tuto il disent que c'est �a qui faut faire quand on utilise le proc�d� GET. Tu ne la peut �tre pas fait attention mais j'ai �dit� mon premier message. Hier j'�tait en POST, mais aujourd'hui j'utilise GET.

    Sinon, dans l'exemple de que j'ai fourni tir� du tuto de developper.com, tu es bien d'accord que le message "Veillez patienter", ne s'affiche qu'une fois? Donc tu vois bien que m�me dans le tuto il y a aussi ce probl�me.

    J'comprend pas �a me gonfle

    Il doit bien y avoir un tuto qui explique comment faire?

  10. #10
    Membre confirm� Avatar de AzertyH
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    90
    D�tails du profil
    Informations personnelles :
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Par d�faut
    Bon j'ai avanc�. J'ai trouv� un cas similaire sur ce forum ou ils disent qu'avec Internet Explorer y a un probl�me de cache et que pour y rem�dier, il faut utiliser POST au lieu de GET.

    J'ai essay� et �a a march�. Mon script php se r�ex�cute visiblement.

    http://www.developpez.net/forums/arc.../t-179155.html

  11. #11
    Membre confirm� Avatar de AzertyH
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    90
    D�tails du profil
    Informations personnelles :
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Par d�faut
    Je viens de recevoir un message priv� d'un r�dacteur : siddh de ce forum. Je vous donne �a version pour contourner le probl�me et cette fois en utilisant GET.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    xhr.open("GET","ajax.php",true);
    xhr.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
    xhr.send(null)

  12. #12
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 888
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 888
    Par d�faut
    Ah merci pour le tuyau Je me disais bien que c'�tait une histoire de cache !

    A+ !

  13. #13
    Membre confirm� Avatar de AzertyH
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    90
    D�tails du profil
    Informations personnelles :
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Par d�faut
    Fucking Cach Internet Explorer !

    Merci � toi d'avoir particip� � mon sujet et de m'avoir donn�e une certaine aide.

    a+

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 10
    Dernier message: 06/03/2007, 11h07
  2. R�ponses: 3
    Dernier message: 26/02/2007, 19h19
  3. Impossible d'�x�cuter certains scripts PHP
    Par wappyboy dans le forum Apache
    R�ponses: 9
    Dernier message: 16/12/2006, 13h33
  4. Impossible d'ex�cuter un fichier .php
    Par soso78 dans le forum IIS
    R�ponses: 2
    Dernier message: 23/10/2006, 22h59
  5. [FLASH MX2004] Ex�cution de script PHP
    Par dleu dans le forum Flash
    R�ponses: 2
    Dernier message: 30/03/2005, 19h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo