Как можно настроить отправку данных из соответствующей формы, чтобы при нажатии на кнопку отправки, данные отправлялись из этой конкретной формы, а не из верхней? Верхняя форма отправляет данные, но хотелось бы, чтобы данные отправлялись из формы, в которой произошло нажатие на кнопку submit.
Для передачи данных из определенного поля ввода на странице в PHP с помощью AJAX в OpenCart, вы можете использовать следующий код: 1. На стороне клиента (в файле шаблона или скрипте JavaScript): ```javascript $('#submit_btn').on('click', function() { var inputData = $('#input_field').val(); $.ajax({ url: 'process.php', // путь к обработчику на стороне сервера type: 'POST', data: {inputData: inputData}, success: function(response) { // обработка ответа от сервера } }); }); ``` 2. На стороне сервера (в файле process.php): ```php $inputData = $_POST['inputData']; // Обработка данных // Например, сохранение данных в базу данных или какая-то другая логика echo 'Данные успешно переданы'; ``` Чтобы отправлять данные из конкретной формы при нажатии на кнопку submit, вам необходимо использовать уникальный идентификатор для каждой формы и кнопки submit. Например, такой код на стороне клиента (в файле шаблона или скрипте JavaScript) может помочь вам добиться этого: ```javascript $('.submit_btn').on('click', function() { var inputData = $(this).closest('form').find('.input_field').val(); $.ajax({ url: 'process.php', type: 'POST', data: {inputData: inputData}, success: function(response) { // обработка ответа от сервера } }); }); ``` Этот код найдет ближайшую форму к кнопке submit, в которой была нажата кнопка, и передаст данные из соответствующего поля ввода. Важно также убедиться, что каждая форма имеет уникальный идентификатор или класс для корректной работы скрипта.
Код контроллера и модели тут лишние. Проблема именно здесь:
{ firstname: $('input[name="name"]').val(), telephone: $('input[name="tel"]').val(), service: $('input[name="service"]').val(), },
Значения берутся самые первые, а не из той формы, которая нужна. Вариантов несколько. Я, как слабенький во фронтенде, подскажу самый "тупой" вариант.
$(document).ready(function() { $('[type="submit"]').on('click', function() { $.ajax({ url: 'index.php?route=demo/test&language=ru-ru', type: 'POST', dataType: 'json', data: { firstname: $(this).parents('form').find('input[name="name"]').val(), telephone: $(this).parents('form').find('input[name="tel"]').val(), service: $(this).parents('form').find('input[name="service"]').val(), }, success: function(data) { if(data.success) { alert("Заметка добавлена!") } else { alert("Ошибка записи!") } } }); }); });
Есть решения элегантнее, но просто непонятно, есть ли доступ к редактированию html, например