8
votes

Faire appel de jQuery Ajax à des fonctions PHP spécifiques

Je suis un développeur PHP recrue.

J'ai créé un projet Web PHP avec une page HTML contenant un bouton "Ajouter". Le nom de la page est Awards.html. Le fichier Awards.html contient son fichier JavaScript contrepartie, Awards.js. Un code est exécuté dans ce fichier JS lorsque le bouton Ajouter est cliqué. Ce code envoie un appel AJAX à une classe PHP située dans le dossier / contrôleur / code> dans le projet nommé, Prix.php. Ce fichier PHP qui contient du code pour exécuter une fonction appelée, additive () dans un autre fichier prenant.php situé dans le dossier / modèle / est affiché dans les récompenses. Page HTML. P>

Le code source de mes fichiers est donné comme suit: p>

awards.html em> p> xxx pré>

awards.js em> p> xxx pré>

Prix.php (situé dans / contrôleur / code> dossier)

class Award
{
    public function addFunction() {
        $array = array(
            'status' => '1'
        );
        return $array;
    }

    public function saveFunction() {
        $array = array(
            'status' => '2'
        );
        return $array;
    }
}


1 commentaires

Vous pouvez transmettre un paramètre supplémentaire à l'aide d'AJAX, ce paramètre supplémentaire servira de drapeau, donc si le paramètre = 'Ajouter' Exécuter AddFuntion, si le paramètre = "Enregistrer" Run Sauvegarde. Ceci est seulement pseudo


3 Réponses :


4
votes

Vous feriez mieux d'utiliser un cadre MVC dans lequel vous pouvez avoir des fonctions de contrôleur pour ajouter et enregistrer des fonctionnalités. Vous pouvez obtenir le comportement requis avec votre implémentation actuelle en envoyant un paramètre de chaîne de requête pour indiquer à votre script PHP qui fonctionne à appeler: xxx pré>

Votre code JS ressemblera à: p>

function onAdd() {
    $("#divAddAward").load('controller/Award.php'); //The full path of the Award.php file in the web root
    $.post(
            'classes/Award.php?action=add'
            ).success(function(resp) {
        json = $.parseJSON(resp);
    });
}

function onSave() {
    $("#divAddAward").load('controller/Award.php'); //The full path of the Award.php file in the web root
    $.post(
            'classes/Award.php?action=save'
            ).success(function(resp) {
        json = $.parseJSON(resp);
    });
}


6 commentaires

Merci beaucoup d'avoir répondu. Je n'utilise pas de cadre MVC. J'ai fourni des noms factices des dossiers ici pour des raisons de sécurité et de confidentialité. Alors, quel sera le code source de mon fichier prime.php?


Merci. Comment passer une chaîne de mon fichier JS à la classe PHP? Pouvez-vous s'il vous plaît me fournir le code JS aussi?


Vous devrez ajouter action = enregistrer ou action = Ajouter un paramètre à votre URL


Ok maintenant, cela me donne l'erreur suivante: AVIS: Index non défini: Action en C: \ Xampp \ htdocs \ phpproject \ contrôleur \ prompt.php


Cela signifie que vous ne passez pas le paramètre d'action sur PHP Script. Vous pouvez également ajouter Isset Vérifier pour voir si le paramètre est passé.


Monsieur, je ne suis toujours pas capable de résoudre ce problème. Il semble que la valeur ne soit toujours pas transmise dans le fichier PHP. S'il vous plaît aider!



9
votes

D'accord, j'ai trouvé la solution au problème moi-même.

J'ai envoyé un appel AJAX à get-type avec les données passées sous la forme de paramètres de chaîne et ajouté une propriété de réussite pour obtenir une confirmation si mon code a fonctionné ou non . J'ai aussi changé mon code prime.php pour attraper le paramètre transcuté avec succès.

afin que le code source de mes fichiers est le suivant:

awards.js xxx

prix.php xxx


0 commentaires

1
votes

Il y a une méthode que j'ai découverte. S'il vous plaît lisez mon explication complètement pour continuer. Dans votre code Ajax (je pense que vous utilisez jQuery), incluez une autre information 'Effectuer', avec la valeur = Nom de la fonction PHP. xxx

puis, dans votre fichier php, ajoutez ce morceau de code à Le début: xxx

puis, lorsque vous appelez à l'aide d'Ajax, vous pouvez obtenir une fonction particulière exécutée. Exemple d'utilisation: de
JavaScript: xxx

exemple php exemple.php: xxx


Lorsque vous faites cela, le registre de fonction fonctionne automatiquement () sera exécuté.


0 commentaires