Rumah  >  Soal Jawab  >  teks badan

Opencart 2: Panggil fail php menggunakan Ajax

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粉153503989P粉153503989175 hari yang lalu340

membalas semua(1)saya akan balas

  • P粉299174094

    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',

    balas
    0
  • Batalbalas