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 :

Appel de fonction PHP


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 54
    Par défaut Appel de fonction PHP
    Bonjour !


    Je voudrais connaître la syntaxe utilisée pour appeler une fonction php (avec ou sans paramètres, avec ou sans "return") à partir de Javascript.
    Je cherche aussi un site où il y aurait la liste des fonctions et expressions JS, (en français évidemment

    Merci

  2. #2
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut
    Bonjour,

    En gros, le JavaScript s'exécute côté client. Pour interagir avec le côté serveur (PhP), vous pouvez utiliser un appel Ajax (pas de rechargement de la page) ou bien faire un submit d'un formulaire (rechargement de la page).

    Quant à la liste des fonctions et autres, c'est plus compliqué de trouver tout ça. Le noyau a été complété dernièrement, et les Frameworks JavaScript agrandissent la liste des possibilités.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 54
    Par défaut
    Je fais donc une requête Ajax et j'appelle la fonction vari() comme suit :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr.open("GET","vari()",false);
    Mais apparemment ce n'est pas bon car firebug n'est pas content :

    GET http://www.monsite.com/vari()

    404 Not Found 256ms.
    Comment je peux faire ? La fonction appelée (vari()) est dans le source du programme

  4. #4
    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 : 54
    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
    J'imagine que tu n'as jamais lu la moindre documentation sur AJAX...
    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

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 16
    Par défaut
    ahahaha.... desole mais le dernier smiley m'a fait rire... Ajax te permer d'executer un script php et pas une fonction php....

    Javascript = Client

    PHP = Server

    Ajax= JS qui appelle un PHP et qui recupere ce que le script repond au client JS

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    ajax doit pointer sur un fichier ... pas une fonction ...


    Mais comme le souligne Beef il serait peut etre bon de lire un ou deux tutos sur ajax avant de vouloir aller plus loin...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    432
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 432
    Par défaut
    En revanche le fichier sur lequel tu pointe, peu lui appeler une fonction, mais elle dois être incluse dans ce même fichier.

    De plus, tu dois utilise une fonction JS pour consulter le serveur afin de savoir a qu'elle moment il a finit d’interpréter le code php, et donc de récupérer la réponse du serveur après l’exécution du code php.

    mais je n'ai plus la commande en tête.

    Suis je clair? Messieurs les pères corrigez moi si je dis une ânerie.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 54
    Par défaut
    Citation Envoyé par darkterreur Voir le message
    En revanche le fichier sur lequel tu pointe, peu lui appeler une fonction, mais elle dois être incluse dans ce même fichier.

    De plus, tu dois utilise une fonction JS pour consulter le serveur afin de savoir a qu'elle moment il a finit d’interpréter le code php, et donc de récupérer la réponse du serveur après l’exécution du code php.

    mais je n'ai plus la commande en tête.
    En fait la commande ajax teste elle même si la réponse est ok :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if(xhr.readyState == 4 && xhr.status == 200){
    				var s2 = '<?php echo $_SESSION['varo']; ?>' ;
     
      		             document.form.elements[3].value = s2; 
                        alert(s2);
    					}
    En fait tout marche bien sauf qu'il semble ne pas récupérer $_SESSION['varo'] alors qu'il l'a bien rempli dans le prog appelé ! s2 vaut toujours " " !
    Cela dit quelque chose à quelqu'un ?

  9. #9
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    Citation Envoyé par pandu Voir le message
    En fait la commande ajax teste elle même si la réponse est ok :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if(xhr.readyState == 4 && xhr.status == 200){
    				var s2 = '<?php echo $_SESSION['varo']; ?>' ;
     
      		             document.form.elements[3].value = s2; 
                        alert(s2);
    					}
    En fait tout marche bien sauf qu'il semble ne pas récupérer $_SESSION['varo'] alors qu'il l'a bien rempli dans le prog appelé ! s2 vaut toujours " " !
    Cela dit quelque chose à quelqu'un ?
    Pour mieux comprendre, imagine-toi que coté serveur t'as un gars qui lit ton php et l'envoi le résultat au client. Coté client t'as un gars qui lit le javascript et l'exécute.

    soit tes 2 pages :
    - page principale
    - page appelée par la requete ajax


    principale.php coté serveur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    xhr.onreadystatechange=function(){
    	if(xhr.readyState == 4 && xhr.status == 200){
    		var s2 = '<?php echo $_SESSION['varo']; ?>' ;
    		document.form.elements[3].value = s2; 
    		alert(s2);
    		var reponse = JSON.parse(xhr.responseText);
    		alert(reponse.sess);
    	}
    };
    xhr.open("GET","http://www.monsite.com/ajax.php",false);
    arrivée chez le client :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    xhr.onreadystatechange=function(){
    	if(xhr.readyState == 4 && xhr.status == 200){
    		var s2 = '' ;
    		document.form.elements[3].value = s2; 
    		alert(s2);
    		var reponse = JSON.parse(xhr.responseText);
    		alert(reponse.sess);
    	}
    }
    xhr.open("GET","http://www.monsite.com/ajax.php",false);
    qui, une fois executé, appelle ta page ajax.php coté serveur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "{sess:'".$_SESSION['varo']."'}";
    et du coté client récupère ta page ajax.php ainsi :
    qui sera alors utilisée par le client dans ta fonction de callback (onstatechange) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    xhr.onreadystatechange=function(){
    	if(xhr.readyState == 4 && xhr.status == 200){
    		var s2 = '' ;
    		document.form.elements[3].value = s2; 
    		alert(s2);
    		var reponse = JSON.parse(xhr.responseText);
    		alert(reponse.sess);
    	}
    };
    xhr.open("GET","vari()",false);

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 54
    Par défaut
    Merci pour ces explications bien claires !
    En fait si j'ai bien compris, $_SESSION n'est pas utilisable ici.
    Il faut passer par responseTxt. Ca marche au poil !
    Petite question quand même :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var reponse = JSON.parse(xhr.responseText);
    C'est quoi le JSON.parse ?

  11. #11
    Membre Expert
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Par défaut
    C'est une fonction native javascript qui parse l'objet "JSON" reçu. Cela permet de se protéger de certains codes malicieux qui pourraient être injectés dans xhr.responseText. Ainsi avec cette méthode, il n'y a pas de risque.

    Sinon un objet JSON est un flux qui contient des données structurées, à l'instar de xml, mais plus performant pour être utilisé avec javascript : Documentation

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 54
    Par défaut
    Citation Envoyé par Kaamo Voir le message
    C'est une fonction native javascript qui parse l'objet "JSON" reçu. Cela permet de se protéger de certains codes malicieux qui pourraient être injectés dans xhr.responseText. Ainsi avec cette méthode, il n'y a pas de risque.

    Sinon un objet JSON est un flux qui contient des données structurées, à l'instar de xml, mais plus performant pour être utilisé avec javascript : Documentation
    Ok. Merci beaucoup.

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

Discussions similaires

  1. Appel de fonctions php par variable
    Par WagaSeb dans le forum Langage
    Réponses: 2
    Dernier message: 02/06/2007, 11h06
  2. [JQUERY] Comment appeler une fonction php avec jquery
    Par popogendarme dans le forum jQuery
    Réponses: 1
    Dernier message: 20/03/2007, 16h07
  3. [AJAX] [php] appel de fonction php dans evenement
    Par nicerico dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 20/11/2006, 12h01
  4. Appel de fonction PHP
    Par ghita269 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 14/07/2006, 18h01
  5. Problème de variable lors d'1 appel de fonction PHP
    Par kriekbellevue dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 14/02/2006, 17h49

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