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

jQuery Discussion :

Appeler une fonction d'un fichier PHP via $.ajax() [AJAX]


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    1 026
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 026
    Billets dans le blog
    45
    Par défaut Appeler une fonction d'un fichier PHP via $.ajax()
    Bonjour à tous !!!

    Comme tout novice, ma question n'a peut être aucun sens mais qui ne tente rien....

    Pour identifier un utilisateur, je fais un accès à une base de données MySQL, via $.ajax()

    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
    function jsUserConnect(){	....
    	$.ajax({
    		type: "POST",
    		url: "sqlConnect.php", // ====================>>>> Est-il possible d'appeler une fonction d'un fichier PHP et pas seulement un fichier ????:mouarf
    		data: serialData,
    		dataType: "json",
    		success: function(dataSQL, statut){
    			window.location.replace('form1.html');
    		},
    		error: function(dataSQL, statut){
    			alert ("error sqlConnect.js : " + dataSQL.erreur);
    		}
    	});
    	....
    }
    Ma question est peut-être d'ordre générale et s'étend à la méthode de programmation mais peut on appeler une fonction PHP dans un fichier PHP via $.ajax, ???

    Merci pour votre aide

  2. #2
    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
    Non, ce n'est bien sûr pas possible : pour pouvoir appeler une fonction spécifique, il faut d'abord que le fichier soit évalué par l'interpréteur PHP, ce qui oblige à ne pouvoir appeler que le script complet.
    En revanche, rien ne t'empêche dans ton script PHP de différencier les traitements en fonction de si la requête provient d'un appel AJAX ou non, mais cela n'est pas la méthode la plus propre...
    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

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    1 026
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 026
    Billets dans le blog
    45
    Par défaut
    Bonjour Bovino,

    Merci beaucoup pour m'avoir répondu aussi diligemment.

    Si je résume, un appel $.ajax = un fichier PHP.

    Encore merci Bovino car ça me permet de passer rapidement aux multiples autres problèmes à venir

  4. #4
    Membre Expert

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Par défaut
    Comme l'a dit Bovino, il n'est pas possible d'appeler une fonction directement mais voici un exemple très simple de code pour "émuler" ce que tu souhaites :

    Fonction ajax :
    Code php' : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $.ajax({
        url: 'ajax.php', //toujours la même page qui est appelée
        type: 'POST',
        data: {fonction: 'maFonction', var1: 'val', var2: 3}, // paramètre fonction qui détermine la fonction qui sera exécutée
        success: function(data) {
            //Faire un truc
        }
    });

    Code de ajax.php :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $fonction = $_POST['fonction'];
    unset($_POST['fonction']);
    $fonction($_POST);

    Et après tu as ta fonction :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    function maFonction($args) {
        echo $args['var1'];
    }

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    1 026
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 1 026
    Billets dans le blog
    45
    Par défaut
    Bonjour Spartacusply

    Merci beaucoup pour cette astuce et le code pour exemple.

    Avant de l'employer, développer de cette façon a-t-elle des désavantages voire ne doit pas être utilisée au regard des bonnes pratiques.

    J'espère que non car ta solution me tente comme un frelon face à un pic nique

  6. #6
    Membre Expert

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Par défaut
    Non, je n'y vois aucun inconvénient majeur, c'est une manière comme une autre d'organiser le fonctionnement de tes requêtes jax. Après du moment que c'est clairement organisé, que tu t'y retrouves, et que c'est pas trop le bordel, c'est le principal. Fait gaffe à la sécurité juste, mais comme toujours avec l'ajax de toutes manières.

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

Discussions similaires

  1. appel à une fonction dans un fichier externe
    Par corentin59 dans le forum Langage
    Réponses: 1
    Dernier message: 11/01/2008, 12h22
  2. Réponses: 4
    Dernier message: 24/08/2007, 15h56
  3. Appeler une fonction dans un code PHP
    Par Nasky dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 07/08/2007, 16h19
  4. Appeler une fonction d'un fichier SWF depuis un Form VB6
    Par Silk_do_Nadear dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 03/04/2007, 07h25
  5. Appeler une fonction d'un script PHP depuis HTML
    Par barthelv dans le forum Langage
    Réponses: 31
    Dernier message: 27/12/2005, 11h25

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