Rumah > Soal Jawab > teks badan
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?
P粉2991740942024-04-01 13:11:46
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.
url : '/system/helper/acumba.php', // wrong
Anda perlu mengubah suai /catalog/controller/extension/total/coupon.php dan letakkan kaedah anda dan kemudian panggil kaedah ini dalam fail JS.
url : 'index.php?route=extension/total/coupon/coupon_for_acumba',