Saya mahu ajax memanggil fail php sistem/pembantu yang saya buat yang memanggil kaedah model yang menambah kupon dalam pangkalan data. php mengandungi kandungan berikut.
<?php function coupon_for_acumba() { $this->load->model('total/coupon'); echo $this->model_total_coupon->coupon_test(); }
Saya mencipta fail js yang membuat panggilan ajax apabila borang diserahkan. Skrip dalam fail adalah seperti berikut
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) })
Akhirnya saya menggunakan $this->document->addScript('catalog/view/javascript/test1.js'); untuk memanggil fail js ini dalam catalog/controller/common/header.php;
Masalahnya ialah setiap kali saya menghantar borang, saya mendapat mesej ralat daripada panggilan ajax. Bolehkah anda memberitahu saya apa yang saya lakukan salah?
OpenCart tidak membenarkan memanggil fail PHP terus dari folder sistem (semak fail .htaccess dalam folder sistem). Cuba buka https://yoursite/system/helper/acumba.php dan anda akan mendapat 403 Forbidden. Anda perlu menggunakan penghalaan untuk memanggil kaedah.
Anda perlu mengubah suai /catalog/controller/extension/total/coupon.php dan letakkan kaedah anda dan kemudian panggil kaedah ini dalam fail JS.