Quiero ajax llamar a un archivo php que creé system/helper que requiere un método de un modelo que agrega un cupón en la base de datos. el archivo php contiene lo siguiente.
<?php function coupon_for_acumba() { $this->load->model('total/coupon'); echo $this->model_total_coupon->coupon_test(); }Creé un archivo js que hace la llamada ajax cuando se envía un formulario. El script en el archivo es el siguiente
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) })finalmente llamé a este archivo js en catalog/controller/common/header.php con $this->document->addScript('catalog/view/javascript/test1.js');
El problema es que cada vez que envío el formulario recibo un mensaje de error de la llamada ajax. ¿Puedes decirme qué estoy haciendo mal, por favor?
OpenCart no permite llamar archivos PHP directamente desde la carpeta del sistema (verifique el archivo .htaccess en la carpeta del sistema). Intente abrir https://yoursite/system/helper/acumba.php, obtendrá 403 Prohibido. Tienes que usar una ruta para llamar a un método.
url : '/system/helper/acumba.php', // wrongDebe modificar /catalog/controller/extension/total/coupon.php y poner su método, luego llame de esta manera en su archivo JS.
url : 'index.php?route=extension/total/coupon/coupon_for_acumba',