recherche

Maison  >  Questions et réponses  >  le corps du texte

Opencart 2 : Appeler des fichiers php en utilisant Ajax

Je souhaite appeler ajax un fichier php du système/helper que j'ai créé qui appelle une méthode du modèle qui ajoute le coupon dans la base de données. Le fichier php contient le contenu suivant.

<?php
function coupon_for_acumba() {
            $this->load->model('total/coupon');

            echo $this->model_total_coupon->coupon_test();
        }

J'ai créé un fichier js qui effectue un appel ajax lorsque le formulaire est soumis. Le script dans le fichier est le suivant

let acumbaForm = document.querySelector('#form-acm_28955');
                acumbaForm.addEventListener('submit', function () {
                    setTimeout(function () {if (document.querySelector('.succes-alert-form-acm')) {
                        $.ajax({

                                url : '/system/helper/acumba.php',
                                type : 'POST',
                                success : function (result) {
                                console.log (result); // Here, you need to use response by PHP file.
                },
                    error : function () {
                        console.log ('error');
            }

                    });
                }}, 2000)
                    
                })

Enfin, j'ai utilisé $this->document->addScript('catalog/view/javascript/test1.js'); pour appeler ce fichier js dans catalog/controller/common/header.php;

Le problème est que chaque fois que je soumets le formulaire, je reçois un message d'erreur de l'appel ajax. Pouvez-vous me dire ce que je fais de mal ?

P粉153503989P粉153503989265 Il y a quelques jours483

répondre à tous(1)je répondrai

  • P粉299174094

    P粉2991740942024-04-01 13:11:46

    OpenCart ne permet pas d'appeler des fichiers PHP directement depuis le dossier système (vérifiez le fichier .htaccess dans le dossier système). Essayez d'ouvrir https://yoursite/system/helper/acumba.php et vous obtiendrez 403 Forbidden. Vous devez utiliser le routage pour appeler la méthode.

    url : '/system/helper/acumba.php', // wrong

    Vous devez modifier /catalog/controller/extension/total/coupon.php et mettre votre méthode puis appeler cette méthode dans le fichier JS.

    url : 'index.php?route=extension/total/coupon/coupon_for_acumba',

    répondre
    0
  • Annulerrépondre