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] Appel d'un fichier php contenant une fonction javascript.


Sujet :

JavaScript

  1. #1
    Membre actif Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Points : 239
    Points
    239
    Par défaut [AJAX] Appel d'un fichier php contenant une fonction javascript.
    Salut,

    Je suis sur un petit problème de JS-PHP-Ajax, j'espère être sur le bon forum pour ce post. Pour commencer, j'utilise cette fonction :
    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
    function execAction(cadre,act){
        xmlHttp = GetXmlHttpObject();
        if (xmlHttp == null){
            alert("Votre navigateur ne supporte pas les requêtes HTTP.");
            return false;
        } 
        var url="showGals.php";
        xmlHttp.onreadystatechange = function (){
            if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete")
                eval(xmlHttp.responseText);
        }
        xmlHttp.open("POST", url, true);
        xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;");
        xmlHttp.send(cadre+"='"+act.options[act.selectedIndex].value+"'");
        return true;
    }
     
    function GetXmlHttpObject()
    { 
        var objXMLHttp = null;
        if (window.XMLHttpRequest)
            objXMLHttp=new XMLHttpRequest();
        else if (window.ActiveXObject)
            objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
        return objXMLHttp;
    }
    pour appeler une fichier PHP... Tout passe sans problème à l'exception d'un morceau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $toPrint ="tagada";
    $toPrint .= " <a href='javascript:openPopWin(\"$RepGrosseImages$image\",$rwidth,$rheight,\"\",\"cen\",\"cen\")'>";
    echo "document.getElementById('refreshZone').innerHTML = '".$toPrint."';";
    J'obtiens le message d'erreur suivant : missing ; before statement document.getElementById('refreshZone').innerHTML = ' <a href='javascript:openPop... Si je commente la ligne $toPrint .=, tout passe nickel... Sans doute une petite subtilité qui manque... Perso, je vois pas ce que c'est... Si quelqu'un peut m'éclairer... Merci...
    Pourquoi vouloir ré-inventer la roue...
    ...Surtout si c'est pour la faire carrée...

  2. #2
    Membre actif Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Points : 239
    Points
    239
    Par défaut
    Re... J'ai passé une bonne partie de la journée à chercher le bug... Je n'ai pas trouvé le problème mais je l'ai légèrement déplacée... j'ai remplacé tous les ' par des \' et maintenant l'erreur c'est mutée en [Break on this error] <b>Parse error</b>: parse error in <b>c:\program files\easyphp1-8\www\test\show...
    Pourquoi vouloir ré-inventer la roue...
    ...Surtout si c'est pour la faire carrée...

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 137
    Points : 160
    Points
    160
    Par défaut
    Salut,
    Et si tu essaies avec ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo 'document.getElementById(\'refreshZone\').innerHTML = "'.$toPrint.'";';

  4. #4
    Membre actif Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Points : 239
    Points
    239
    Par défaut
    Merci mikaoul... Ce problème est résolu... Mais il a ouvert la voie à un suivant... Normalement, la fonction js qui appelle le PHP devrait passer un paramètre (act) n'est pas transmis... J'en profite pour solliciter vos lumières à nouveau... Et encore merci pour ce début de solution...
    Pourquoi vouloir ré-inventer la roue...
    ...Surtout si c'est pour la faire carrée...

  5. #5
    Membre actif Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Points : 239
    Points
    239
    Par défaut
    J'ai essayé de remplacer le GET par un post et de modifier l'url que je passais en monUrl?act=valeur mais ça ne fonctionne pas non plus... Avec le GET, rien ne passe et avec le POST, je récupère [object HTMLSelectElement] dans ma fonction php... Je suis un peu perdu, quelqu'un voit le problème?
    Pourquoi vouloir ré-inventer la roue...
    ...Surtout si c'est pour la faire carrée...

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 137
    Points : 160
    Points
    160
    Par défaut
    et avec le POST, je récupère [object HTMLSelectElement] dans ma fonction php...
    Tu veux dire que tu as un truc comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        xmlHttp.send(cadre+"='"+act.options[act.selectedIndex].value+"'&act="act);

  7. #7
    Membre actif Avatar de Empty_body
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    681
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 681
    Points : 239
    Points
    239
    Par défaut
    Je suis un éternel distrait...
    J'envoyais act au lieu de act.options[act.selectedIndex].value.
    Avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     xmlHttp.open("GET", url+"?act="+act.options[act.selectedIndex].value, true);
    c'est au poil...
    Merci pour tout et bonne soirée...
    Pourquoi vouloir ré-inventer la roue...
    ...Surtout si c'est pour la faire carrée...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 8
    Dernier message: 04/07/2017, 11h48
  2. appel du php dans une fonction javascript
    Par manal00 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 05/06/2012, 11h37
  3. appeler une fonction php dans une fonction javaScript
    Par geeksDeve dans le forum Langage
    Réponses: 3
    Dernier message: 17/04/2012, 15h30
  4. Réponses: 10
    Dernier message: 14/03/2009, 13h36
  5. Appel d'un fichier .js dans une fonction javascript
    Par Ubum dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 29/01/2008, 15h08

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