Я пытаюсь использовать подготовленный оператор и параметры для отправки данных в OpenCart 4.

1
8

Я пытаюсь использовать подготовленный оператор и параметры для отправки данных в базу данных через ajax, но получаю ошибку о неизвестном методе. Отправка данных в базу данных с помощью обычного запроса работает нормально

Html

Jquery

PHP

<form action="/" method="post" class="main-hero-form">
                <div class="form-row">
                  <input class="form-control" type="text" name="name" placeholder="Ваше имя" autocomplete="name" required="">
                  <input class="form-control" type="tel" name="tel" placeholder="Телефон" autocomplete="phone" required="">
                  <input class="d-none" type="text" name="service" value="Тепловые центры на жидком и газовом топливе с автономной работой">
                </div>
                <input type="submit"value="Запросить стоимость, условия и времени поставки" class="main-hero-form-send">
                <p class="main-hero-text">В течении <span>15 минут</span> вы получите звонок от нашего менеджера, который предоставит подробную консультацию.</p>
              </form>
$(document).ready(function() {
    $('input[type="submit"]').on('click', function() {
        $.ajax({
            url: 'index.php?route=demo/test&language=ru-ru',
            type: 'post',
            dataType: 'json',
            data: {
                    'firstname': $('input[name="name"]').val(),
                    'telephone': $('input[name="tel"]').val(),
                    'service'  : $('input[name="service"]').val(),
                 },
            success: function(data) {
                if(data.success) {
                    alert("Заметка добавлена!")
                } else {
                    alert("Ошибка записи!")
                }
            }
        });
    });
});
public function index() {
        $json = array();

        date_default_timezone_set('Asia/Almaty');
    
        $name = $this->request->post['name']; 
        $tel = $this->request->post['tel']; 
    
        try {
            $sql = "INSERT INTO " . DB_PREFIX . "customer(customer_group_id, firstname, telephone) VALUES (1, ?, ?)";
            $this->db->execute_query($sql, [$name, $tel]);
            $json['success'] = 1;
        } catch (\Exception $e) {
            $json['success'] = 0; 
        }
        $this->response->addHeader('Content-Type: application/json');
        $this->response->setOutput(json_encode($json));
    }
Майя
Вопрос задан15 апреля 2024 г.

1 Ответ

Ваш ответ

Загрузить файл.