web-dev-qa-db-ja.com

Laravel @ajax経由でブレードビューを含める

いくつかのコンテンツを@includeするページがあります。ajaxリクエストを使用してそのブレードビューファイルを@includeしたいと思います。どうすればいいですか。

基本的に、ビューファイルはサーバーからアイテムを取得します。

**price.blade.php**
@foreach ($items as $item)
<div class="item-post">
  <div class="priceofitem">{{ $item->price }} </div>

タブセクションに@include( 'price.blade.php')を含めたい

<ul class="tabs">
<li><a href="#tab1">Prices </li>
<div id="tab1">@include('price.blade.php')</div>

ユーザーがクリックしない限りそのタブのコンテンツをロードしたくないので、ロード時にそのビューファイルを自動的に含めたくありません。ユーザーがそのタブをクリックするよりも価格が必要な場合は、AJAXリクエストが送信されます。

私が自分自身を明確にしたことを願っています、あなたが私を理解していなかったら私に知らせてください。

成功を祈っている

4
Cowgirl

あなたは次のようなものが欲しい

$(document).ready(function() {
    $("#tab1").click(function() {
        $.ajax({
            type: 'POST', 
            url : "/yourrouteview", 
            success : function (data) {
                $("#tab1").html(data);
            }
        });
    });
}); 

コントローラーとルートは、正しいビューを取得するように/ yourrouteviewを構成する必要があります(つまり、@ include( 'price.blade.php')

9
Dhiraj

Ajaxリクエストを作成し、次のようなコントローラー関数からビューを返します。

return view('your_view');

ajax success関数で、次のように追加します。

success: function(response){
    $('#Id').html(response);
}

フローは次のようなものです。

$('#tab').click(function(){
    // ajax call here
    ...
    success: function(response){
        $('#Id').html(response);
    }
});

コントローラ:

function funcName()
{
    // Do what ever you want
    return view('your_view');
}
4
Mayank Pandeyz

laravel like this !!でgetrequestを使用してブレードエンジンを使用してidでajax呼び出しを行います。

$(document).ready(function(){
  var id = $(this).data("id");
  $.ajax({
     type: "GET",
     url:"{{ url('your url') }}/"+id,
     cache: false,
     contentType: false,
     processData: false,
     success: function (data) {
       $("#id").html(data);
     },
     error: function (xhr, textStatus, errorThrown) {
       console.log("XHR",xhr);
       console.log("status",textStatus);
       console.log("Error in",errorThrown);
     }
  });
0
Harsh Joshi