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 :

Comment lancer des traitements php avec du Javascript?


Sujet :

JavaScript

  1. #1
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    53
    D�tails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 53
    Par d�faut Comment lancer des traitements php avec du Javascript?
    Bonjour,
    Je ne savais pas trop ou poser mon probleme donc, je le fais ici. Dites moi s'il n'est pas a sa place.

    Donc, voila, j'ai des fonctions/proc�dures en php dans des fichiers sur le serveur.
    Et j'aurai aim� savoir s'il �tait possible de les lancer directement depuis une fonction javascript sur une de mes pages web.

    Dans certains cas, je souhaiterai juste que le javascript lance un traitement (effectuer en php - insertion en BD -) et dans un autre cas, j'aurai besoin de r�cup�rer la valeur retourner par la fonction (boolean).

    Est-il possible de faire ce genre de chose avec du javascript?

    Merci pour vos r�ponses.

  2. #2
    Membre Expert
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Par d�faut
    Tu peux utiliser l'objet XMLHttpRequest pour obtenir une page php,mais c'est tout ce que tu peux faire...
    Javascript tourne sur le navigateur (c�t� client) tandis que php est interpr�t� par le serveur pour ressortir une page HTML...
    Donc tu ne peux pas appeler de fonction php depuis javascript.

  3. #3
    Membre Expert
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 46
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activit� : Chef de projet NTIC
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Par d�faut
    Il y a plein de tutos ajax ^^

  4. #4
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    53
    D�tails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 53
    Par d�faut
    Merci pour vos conseils.
    J'ai essay� d'utiliser Ajax du coup, mais j'ai une erreur.
    En fait, ca ne cr�e pas d'erreur mais, disons que ca ne fonctionne pas.
    Voici le code de mes fonctions Ajax :
    function ajax_LookUpAcceptedCustomer(ClientEmail)
    {
    var xhr=null;
    var myUrl = "http://localhost/LookUpAcceptedCustomer.php?ClientEmail=";
    myUrl = myUrl + ClientEmail;

    if (window.XMLHttpRequest) {
    xhr = new XMLHttpRequest();
    }
    else if (window.ActiveXObject)
    {
    xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }

    xhr.onreadystatechange = function() { LookUpAcceptedCustomer_Result(xhr); };

    xhr.open("GET", myUrl, true);
    xhr.send(null);
    }

    function LookUpAcceptedCustomer_Result(xhr)
    {
    var docXML= xhr.responseXML;
    var items = docXML.getElementsByTagName("RS")
    if ( items.item(0).firstChild.data == 0 )
    {
    return false;
    }
    else
    {
    return true;
    }
    }
    Alors j'ai v�rif� avec un "alert" et myUrl possede bien la bonne url avec le bon parametre.
    Suite � ca, voici ma page php :

    <?php
    header('Content-Type: text/xml');
    echo "<?xml version=\"1.0\"?>\n";
    echo "<RESULT>\n";

    $db_conn = new COM("ADODB.Connection");
    $connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=". realpath("./STC_email.mdb").";";
    $db_conn->open($connstr);

    $rS = $db_conn->execute('SELECT count(*) FROM STC_email WHERE STC = \'accept\' AND Flag = 1 AND email = \'' . $_GET['ClientEmail'] . '\'');

    $f1 = $rS->Fields(0);
    while (!$rS->EOF)
    {
    $EmailExist = $f1->value.
    $rS->MoveNext();
    }
    $rS->Close();

    if ($EmailExist == 0) {
    echo "<RS> 0 </RS>\n";
    }
    else {
    echo "<RS> 1 </RS>\n";
    }

    $db_conn->Close();

    echo "</RESULT>\n";
    ?>

    Seulement cela me donne une erreur.
    ClientEmail semble etre ind�fini.
    Si je tape directment l'url en question dans mon navigateur je n'ai pas d'erreur. Mais � travers la fonction ajax, une erreur (ClientEmail non d�fini) apparait.
    Je ne parviens pas a comprendre.

    Merci pour votre aide.

  5. #5
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Ben... si l'erreur vient de ClientEmail ind�fini, la moindre des choses serait peut-�tre de nous montrer ce que tu envoies comme variable ClientEmail plut�t que d'incriminer la fonction Ajax qui pour le moment en tout cas n'y est pour rien...
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  6. #6
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    53
    D�tails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 53
    Par d�faut
    J'envoie juste ce que l'utilisateur entre dans le formulaire.
    Donc c'est juste une adresse email.

  7. #7
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    $rS = $db_conn->execute('SELECT count(*) FROM STC_email WHERE STC = \'accept\' AND Flag = 1 AND email = \'' . $_GET['ClientEmail'] . '\'');
    Oui, tu oublies d'�chapper les quotes dans ClientMail...
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    $rS = $db_conn->execute('SELECT count(*) FROM STC_email WHERE STC = \'accept\' AND Flag = 1 AND email = \'' . $_GET[\'ClientEmail\'] . '\'');
    EDIT
    Bon... oublie... dans ton code (comme tu l'as mis en citation et pas en code), les \quote quote ressemblait un peu trop � \doubles quotes...
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    D�cembre 2007
    Messages
    59
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 59
    Par d�faut
    je te conseil d'utiliser Firebug (plugin de firefox) pour d�bugger ton script AJAX, �a te permet de monitorer la r�ponse de ta requ�te et les valeurs de tes variables et donc de savoir ce qui ne va pas.

  9. #9
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Citation Envoy� par Kyaan Voir le message
    je te conseil d'utiliser Firebug (plugin de firefox) pour d�bugger ton script AJAX, �a te permet de monitorer la r�ponse de ta requ�te et les valeurs de tes variables et donc de savoir ce qui ne va pas.
    Merci !!!
    On ne le r�p�tera jamais assez...
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  10. #10
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    53
    D�tails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 53
    Par d�faut
    Ok, je vais essayer ca parceque la, ca commence a me rendre fou lol.
    Merci pour vos conseils.

  11. #11
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    53
    D�tails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 53
    Par d�faut
    Ahh je viens de rev�rifier avec firebug. Et en faiit mon Ajax fonctionne tres bien...C'�tait la suite de mon code qui ne fonctionnait pas en fait. lol.
    J'oubliai de aire le return (true ou false selon le cas) avec la fonction d'appel.
    Du coup c'�tait la suite qui ne tournait pas rond ...
    D�sol� et merci pour votre aide.

  12. #12
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    53
    D�tails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 53
    Par d�faut
    Finalement...j'ai bien un probleme.
    Mais c'est bizarre car si je le fait en pas a pas avec firebug, la routine fonctionne tres bien.
    Mais lanc� par elle meme sans le pas a pas, elle ne fonctionne plus.
    Je ne comprends d�cidement rien.
    Vous n'auriez pas une petite id�e?
    Merci pour votre aide.

  13. #13
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Citation Envoy� par Evenmor Voir le message
    Finalement...j'ai bien un probleme.
    Mais c'est bizarre car si je le fait en pas a pas avec firebug, la routine fonctionne tres bien.
    Mais lanc� par elle meme sans le pas a pas, elle ne fonctionne plus.
    Je ne comprends d�cidement rien.
    Vous n'auriez pas une petite id�e?
    Merci pour votre aide.
    Relis ton message et r�pond � cette question : comment on pourrait avoir une id�e ???

    Deuxi�me question : que s'est-il pass� entre 17h09 et 22h44 (heures de tes posts) pour que ce qui fonctionnait ne fonctionne plus... Nous � priori, on en sait rien
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  14. #14
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    53
    D�tails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 53
    Par d�faut
    Merci Bovino pour tes remarques.
    Tu peux passer a la suite.
    je ne suis pas en France, les gens dorment ici.

    Bref,
    J'ai comme l'impression que c'est une question de timing.
    En mode pas a pas, cela fonctionne. Peu etre que en mode normal, ca va trop vite, du coup les traitement n'ont pas assez de temps pour etre fait.
    C'est poissible?

  15. #15
    Membre Expert
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Par d�faut
    Quels sont les messages d'erreur?

  16. #16
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    53
    D�tails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 53
    Par d�faut
    Le message d'erreur disait que le fichier XML (issu du flux) �tait null.
    J'ai donc effectuer un peu de recherche et j'ai vu qu'il fallait attendre le 'readystate' � 4 pour que tout soit charger.
    J'ai donc ajouter cette ligne au code de la fonction lanc� par Ajax
    if(xhr.readyState == 4 && xhr.status == 200){
    Du coup, il n'y a plus de message d'erreur.
    Mais ca ne fonctionne toujours pas.

    ---------------------

    Suite � ca, j'ai mis des alerts un peu partout dans mon code, et ...avec les alerts...ca fonctionne mais pas sans...
    Est ce que ca peut etre un probleme de timeout?
    J'y comprend de moins en moins.

    Merci pour l'aide

  17. #17
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    if(xhr.readyState == 4 && xhr.status == 200)
    D�sol� d'�tre un peu vexant, mais c'est mon style :
    c'�tait tellement �norme que j'avais m�me pas fais attention � �a !!!
    Sinon, le readyState 4 correspond � l'envoi des donn�es par le serveur.
    Dans ton cas, il est possible que ton traitement cherche des donn�es qui n'ont pas encore �t� transmises.
    Essaye de passer en mode synchrone
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    xhr.open("GET", myUrl, false);
    OU
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    if(xhr.readyState == 5 && xhr.status == 200)
    le 'readystate' � 4 pour que tout soit charger.
    Ben non justement, le readyState 5 attend que tout soit charg�...
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  18. #18
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    53
    D�tails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 53
    Par d�faut
    mmmh, merci. Je ne connaissais pas readystate 5, je ne l'ai jamais vu dans les tutos, c'etait toujours de 0 � 4.

    Sinon voila mon code :
    function ajax_LookUpAcceptedCustomer(Email)
    {
    var resul = false;
    var xhr=null;
    // var myUrl = "http://localhost/LookUpAcceptedCustomer.php?ClientEmail=";
    var myUrl = "http://localhost/LookUpAcceptedCustomer.php?";
    // myUrl = myUrl + Email;

    if (window.XMLHttpRequest) {
    xhr = new XMLHttpRequest();
    }
    else if (window.ActiveXObject)
    {
    xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }

    xhr.onreadystatechange = function() {
    if (LookUpAcceptedCustomer_Result(xhr))
    { resul = true;; }
    else
    { resul = false;} };

    xhr.open("POST", myUrl, true);
    xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xhr.send("ClientEmail="+Email);
    // xhr.send(null);

    alert(resul)
    return resul;

    }

    function LookUpAcceptedCustomer_Result(xhr)
    {
    if(xhr.readyState == 4 && xhr.status == 200){
    var docXML = xhr.responseXML;
    var items = docXML.getElementsByTagName("RS")
    if ( items.item(0).firstChild.data == 0 )
    {
    return false;
    }
    else
    {
    return true;
    }
    }
    }
    Et la...ce qui est VRAIMENT bizarre...c'est que avec le "alert(resul)" ca marche, mais pas sans....
    POURQUOI?? je deviens fou lol.

    PS: j'ai essayer en post et en get, ca me donne le meme r�sultat, fonctionne avec le alert mais pas sans.

  19. #19
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    readyState 4 -> Les donn�es commencent � �tre transmises
    readyState 5 -> Les donn�es ont �t� transmises.

    En g�n�ral , on ne s'en sert jamais parce que l'int�r�t d'Ajax, c'est pr�cis�ment le c�t� asynchrone et que si on attend la fin de la transmission des donn�es... ben du coup on passe en synchrone. Mais des fois, �a peut �tre utile...
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  20. #20
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    53
    D�tails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 53
    Par d�faut
    Merci, mais avec le readystate � 5 dans la condition ca ne marche pas du tout.
    Avec ou sans le alert.

+ R�pondre � la discussion
Cette discussion est r�solue.
Page 1 sur 2 12 Derni�reDerni�re

Discussions similaires

  1. [Excel] Comment lire des fichiers excel avec php?
    Par dear_rihab dans le forum Biblioth�ques et frameworks
    R�ponses: 5
    Dernier message: 02/11/2007, 12h38
  2. [Mail] Comment envoyer des e-mails avec PHP
    Par lauryk dans le forum Langage
    R�ponses: 2
    Dernier message: 03/09/2007, 17h16
  3. [PHP-JS] Comment faire int�ragir du php avec du javascript
    Par Alexlesilex dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 24/04/2007, 20h42
  4. R�ponses: 1
    Dernier message: 11/10/2006, 11h21
  5. R�ponses: 4
    Dernier message: 14/12/2005, 12h16

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