ajaxで表示を追加したりする場合、本当はJSON形式で受け取りVue.jsなどで描画する方が綺麗なのかもしれないけど、Viewで受け取り、追加したい要素にappendで手っ取り早く描画する方法。
■View側
<script>
$(function(){
$('#moreBtn').on('click', function(){
$.ajax({
url: 'http://localhost/xxxx/public/information/more',
type: 'get',
data: {"page" : 2},
})
.done(function(data){
$('#addArea').append(data['list']);
})
.fail(function(){
alert('error');
})
});
});
</script>
‘moreBtn’が押されたら
$(‘#moreBtn’).on(‘click’, function(){
ajaxでgetで
type: ‘get’,
getリクエストする
url: ‘http://localhost/xxxx/public/information/more’,
※url: ‘http://localhost/xxxx/public/コントローラ名/アクション名’,
パラメータがあればセットする
data: {“page” : 2},
コントローラから受け取ったviewを表示したい要素に追加して完了
$(‘#addArea’).append(data[‘list’]);
コントローラ側
public function more(Request $request)
{
$page = $request->input('page');
$informations = viewに渡したいデータを取得
return response()->json([
'list' => view('admin.information.more', compact('informations'))->render()
]);
}
レスポンスをJSON形式で返す
return response()->json([
返すviewを指定する。
view(‘admin.information.more’
そのviewに渡したいパラメータがあれば渡してやる。
compact(‘informations’)
ここまでは想像つきそうだけど、最後に
->render()