フォームphp(Laravel)
ビューが1つあり、このビュー内に、選択オプションとデータを要求するためのボタンが1つあるフォームがあります。選択したオプションに応じて(データは私の残りの部分からのものです->この部分は私の質問にとって重要ではありません)私はユーザーにいくつかの情報を示します。
リクエストボタンをクリックすると、関数に移動してリターンデータを取得する必要があります(選択したオプションを今すぐ確認することは重要ではありません)そして同じにもう一度送信します特定のdivでユーザーに表示および表示。関数に接続してデータを取得し、リクエストデータを使用して他のビューに戻るフォームをすでに実装しています。ただし、この場合は異なり、関数に接続して戻りデータを表示する必要がありますが、同じビューを維持する必要があります。
助けてくれてありがとう。
よろしく
編集(詳細)
私のビュー(フォームのアクションは、コントローラーの関数に接続してデータを取得するために何かを行う必要があります)。たとえば、「Data1」を選択した場合、関数はデータ1に関するデータを含むjsonまたは配列を返し、この情報を「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>
答え :
解決策:
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', '[email protected]');
HomeControllerでgetinfoメソッドを作成する
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);
}
});
}
});
これがお役に立てば幸いです。
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。