11
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

LaravelでAjax通信時に生成済みのViewを返す

Last updated at Posted at 2015-09-28

Ajax通信時にjava scriptでDOMを構築するのは、めんどくさい手間がかかる上に、ソースがややわかりづらくなってしまい気味なので、laravelで生成済みのViewを返してjQueryで差し込むだけにしてしまおうというお話。

といっても、そう難しい話ではなく、Ajaxのレスポンスを生成する際に、RenderしたViewをjson_encodeして返してあげるだけ。

return json_encode(
  'view' => view::make('hoge', [
    'hoge' => $hoge
    'fuga' => $fuga
  )->render()
);

ポイントは、encode時に->render()してあげること。

配列で複数のViewを返すこともできるので、複数個所のhtmlを同時に書き換えることも可能。

return json_encode(
  'view1' => view::make('hoge1', [
    'hoge1' => $hoge1
    'fuga1' => $fuga1
  )->render(),
  'view2' => view::make('hoge2', [
    'hoge2' => $hoge2
    'fuga2' => $fuga2
  )->render()
);

Viewを入れたjsonを返す時は通常のjsonよりも通信量が多くなるため、Viewの内容によって使い分ける。

11
13
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?