3
リクエストがajaxの場合、コンテンツセクションをレンダリングしてDOMに挿入しています。期待どおりに動作しています。ajaxリクエストで複数のブレードビューセクションをレンダリングする
しかし、私は同じ方法でcontent
とtitle
以上のように複数のセクションをレンダリングする方法を見つけることができません。
コントローラー:
public function awesome(Request $request) {
if($request->ajax()){
return view('awesome')->renderSections()['content'];
}
return view('awesome');
}
Ajaxとpushstate
var load = function (url) {
$.get(url).done(function (data) {
$("#content").html(data);
})
};
$(document).on('click', 'a[data-request="push"]', function (e) {
e.preventDefault();
var $this = $(this),
url = $this.attr("href"),
title = $this.attr('title');
history.pushState({
url: url,
title: title
}, title, url);
// document.title = title;
load(url);
});
layouts.app
<title>@yield('title')</title>
<meta name="description" content="@yield('desc')"/>
<a data-request="push" title="AWESOME" href="<?= url('/'); ?>/awesome">Awesome</a>
<a data-request="push" title="RANDOM" href="<?= url('/'); ?>/random">Random</a>
<div id="content">
@yield('content')
</div>
ブレード:
@extends('layouts.app')
@section('title', 'Awesome')
@section('desc', 'About awesome')
@section('content')
some text from awesome page
@endsection
質問:
同じ時間でそれらの両方以上をレンダリングする方法は?私は配列などを使うべきですか?例や完全な説明をしてください。
ありがとうございます。
をpushstate私はすでに同じことをやったが、代わりにレスポンスを返すので、私は、ビューをコードして、Ajaxのリクエストでいます私は '' data = $ .parseJSON(data) ''を使っています。しかし、私はそれが同じだと思います。たぶんresponse()は '' laravel''のことでしょう。あなたはどのように思いますか? – Tauras
$ .parseJsonはjson文字列を返す場合にのみ機能します。これは応答jsonメソッドによって行われます。第2に、レスポンスjsonもコンテンツタイプを 'application/json'に設定します。最後に、必ず文字列ではなく、コントローラから応答またはビューを返すようにしてください。これは技術的に正しい方法です:) – Paras
よろしくお願いいたします。この2つの日のうちに私の頭を叩いた。 – Tauras