#php #html #laravel #bootstrap-modal #bootstrap-5
Вопрос:
Я пытаюсь получить данные формы с помощью PHP Laravel, включенного в модал начальной загрузки 5. Однако при отправке я получаю нулевые ограничения SQL, потому что сервер, похоже, не получает данные, введенные в форме, завернутой в модал. Форма хорошо работает, если она расположена вне модального. Ниже приведен модальный код:
<div class="modal fade" id="donation" tabindex="-1" aria-labelledby="exampleModalLabel">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Form</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
</div>
<div class="modal-body" style="text-align: justify">
<form action="/path" enctype="multipart/form-data" method="POST">
@csrf
<input class="form-control input--style-4 mb-3 rounded-0" type="number" placeholder="Amount"
name="amount" aria-label="default input example" id="amount" min="0">
<input class="form-control input--style-4 mb-3 rounded-0" type="text" placeholder="Name"
name="text" aria-label="default input example" id="donater">
<input class="form-control input--style-4 mb-3 rounded-0" type="text" data-field="date"
placeholder="Date" name="date">
<div class="d-flex justify-content-between">
<button type="button" class="btn btn-outline-danger" data-bs-dismiss="modal">Cancel</button>
<button type="submit" class="btn btn-danger" name="action" value="donation">Submit</button>
</div>
</form>
</div>
</div>
</div>
</div>
Как я могу решить эту проблему?
Ответ №1:
Вместо этого вы отправляете данные по правильному маршруту
<form action="/path" ..>
вы должны использовать вместо action="{{route('/post-route')}}"
этого, иначе вы можете отправлять данные с помощью ajax с помощью jquery
$("#send-btn").click(function (e) {
e.preventDefault();
let name = $('#name').val();
let data = $("#form-id").serializeArray();
$.ajax({
type: "post",
url: "{{route('post-route')}}", //post route of your controller
data: data,
success: function (response) {
if(response.success==true){
alert("response was successfully");
}
}
});
});