いくつかのコンテンツを@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リクエストが送信されます。
私が自分自身を明確にしたことを願っています、あなたが私を理解していなかったら私に知らせてください。
成功を祈っている
あなたは次のようなものが欲しい
$(document).ready(function() {
$("#tab1").click(function() {
$.ajax({
type: 'POST',
url : "/yourrouteview",
success : function (data) {
$("#tab1").html(data);
}
});
});
});
コントローラーとルートは、正しいビューを取得するように/ yourrouteviewを構成する必要があります(つまり、@ include( 'price.blade.php')
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');
}
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);
}
});