Форма php (Laravel)

У меня есть одно представление и внутри этого представления у меня есть форма с опцией выбора и одна кнопка для запроса некоторых данных. В зависимости от выбранной опции (данные пришли от моего отдыха -> эта часть не важна для моего вопроса), я показываю пользователю некоторую информацию.

Поэтому, когда я нажимаю на кнопку запроса, мне нужно перейти к моей функции, получить данные возврата (проверка того, какой вариант вы выбрали, сейчас не важна) и отправить снова в тот же вид и показать пользователю в конкретном div. Я уже реализую формы, которые подключаются к моей функции, получают данные и возвращаются в другое представление с данными запроса. Но в этом случае это отличается и Мне нужно подключиться к функции и показать возвращаемые данные, но оставаясь в том же виде.

Спасибо за помощь.

С уважением

РЕДАКТИРОВАТЬ (дополнительная информация)

Мой взгляд (Действие в форме, мне нужно что-то сделать, чтобы подключиться к моей функции в контроллере и получить данные). Например, если я выбираю «Data1», моя функция возвращает json или массив с данными о данных 1, и мне нужно показать эту информацию в том же виде в «mydiv».
В моем контроллере у меня есть простая функция, которая возвращает некоторые данные (в этом случае для проверки это может быть простая строка)

    <div id="mydiv">
<form class="form-horizontal" role="form" method="POST" action="">
<select size ="1" name="selectData" style="height:30px;">
<option value="" style="display:none;"></option>
<option value="data1">Data 1</option>
<option value="data2">Data 2</option>
</select>
</form>
***SHOW STRING (DATA 1) HERE***
</div>
<button type="submit" class="btn btn-primary" id="request" style="float: center;">
Request
</button>

-1

Решение

Вы можете достичь того, что ищете, совершив ajax-вызов. Вот простая демонстрация ..
это код вашего блейд-файла

<div id="mydiv">
<form class="form-horizontal" role="form" method="POST" action="">
<select size ="1" name="selectData" style="height:30px;">
<option value="0" style="display:none;"></option>
<option value="data1">Data 1</option>
<option value="data2">Data 2</option>
</select>
</form>
</div>
<div id="response"></div>
<button type="submit" class="btn btn-primary" id="request" style="float: center;">
Request
</button>
<script src="{{ asset('js/jquery.min.js')}}"></script>
<script>
$( document ).ready(function() {
$('select[name="selectData"]').change(function () {
var selectData = $('select[name="selectData"]').val();
if (selectData != 0) {
$.ajax({
url: '/getinfo',
data: {
'_token': '{{csrf_token()}}',
'selectData': selectData,
},
dataType: "json",
type: 'post',
success: function (json) {
$('#response').text(json);
}
});
}
});
});
</script>

это твой маршрут

Route::post('/getinfo', 'HomeController@getinfo');

создать метод getinfo в вашем HomeController

public function getinfo(){
$data = Input::get('selectData');
$msg ='';
if($data=='data1'){
$msg = "data 1 selected";
}else if($data=='data2'){
$msg = "data 2 selected";
}
return response()->json($msg);
}

если вы хотите получить ответ от контроллера после нажатия кнопки, вы можете использовать это

$('#request').click(function () {
var selectData = $('select[name="selectData"]').val();
if (selectData != 0) {
$.ajax({
url: '/getinfo',
data: {
'_token': '{{csrf_token()}}',
'selectData': selectData,
},
dataType: "json",
type: 'post',
success: function (json) {
$('#response').text(json);
}
});
}
});

надеюсь, это поможет.

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector