我有点卡在一个地方。我有一些小HTML sections
的视图,当它们组合在一起时会提供完整的HTML页面。我正在尝试使用website builder
构建Jquery
,其中我有一个drop event
,其中添加了views
:
例如,我HTML
已slideshow
:
<div id="slideshow" data-nitsid="2">
<div class="revolution-slider">
<ul>
<!-- SLIDE -->
@foreach($contents->slider as $sliders)
<li data-transition="{{ $sliders->transition }}" data-slotamount="{{ $sliders->slotamount }}" data-masterspeed="{{ $sliders->masterspeed }}">
<!-- MAIN IMAGE -->
<img src="{{ URL::asset($sliders->url) }}" alt="">
</li>
@endforeach
</ul>
</div>
</div>
在我的JQuery
代码中:
nitsbuilder.dropeventhandler = function ($item, $position) {
var nits_id = $item.data('nitsid');
$.ajax({
method: 'POST',
url: dropurl,
data: { nits_id: nits_id, _token: token},
dataType: 'json',
success: function (data) {
nitsbuilder.adder($item, $position, data);
}
});
}
在我html codes
中database
之前,我更容易提取html并添加到HTML页面,现在我有html in views
,我怎么能{ {1}}此push/include
或HTML code
到view
,以便我的nitsbuilder.adder函数执行通过我的控制器放置视图。
我现在的ajax request
是:
Controller
请指导我。感谢
答案 0 :(得分:3)
您可以使用\ View :: make
从刀片视图轻松创建html字符串e.g。让我们假设你有以下文件夹结构
您现在可以创建一个接受&#34;名称&#34;的路线/控制器。参数,然后执行以下操作
$name = "snippetA"; // get this from parameters
$html = \View::make("snippets.$name")->render();
您可能还需要根据您的观点添加变量
$name = "snippetA"; // get this from parameters
$errors = []; // error variable might be needed
$html = \View::make("snippets.$name", compact('errors'))->render();
然后您可以返回此html字符串
return ['html' => $html];
从你的ajax done函数访问它。
我希望这会有所帮助
答案 1 :(得分:2)
假设您的html位于名为abc.blade.php的视图文件中,您可以在json中从控制器返回渲染视图。
return response()->json([
'htmlcode' => View::make('abc')->render();
]);