首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Ajax在Laravel中添加/包含视图

如何使用Ajax在Laravel中添加/包含视图
EN

Stack Overflow用户
提问于 2016-08-04 08:14:05
回答 2查看 770关注 0票数 1

我被困在一个地方了。我有一些小HTML sections的视图,当结合在一起时,提供完整的HTML页面。我正在尝试用Jquery构建一个Jquery,其中我有一个drop event,它添加了那些特定的views

例如,我有HTML For slideshow

代码语言:javascript
复制
<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代码中:

代码语言:javascript
复制
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,我如何才能将这个HTML codeview转换为ajax request,以便执行通过控制器放置视图的nitsbuilder.adder函数。

我现在的Controller是:

代码语言:javascript
复制
class DropeventController extends Controller
{
    public function htmlcode(Request $request)
    {
        $pluginid = $request['nits_id'];
        $code = Plugins::findOrFail($pluginid);
        $htmlcode = $code->code;
        return response()->json(['htmlcode' => $htmlcode]);
    }

}

请引导我。谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-04 08:41:01

您可以使用\View::make从刀片视图轻松地创建html字符串

让我们假设您有以下文件夹结构

  • 项目
    • ..。
    • 资源来源
    • 视图
      • 小片段
      • snippetA
      • snippetB

现在可以创建接受"name“参数的路由/控制器,然后执行以下操作

代码语言:javascript
复制
$name = "snippetA"; // get this from parameters

$html = \View::make("snippets.$name")->render();

您可能还需要根据视图添加变量。

代码语言:javascript
复制
$name = "snippetA"; // get this from parameters
$errors = []; // error variable might be needed

$html = \View::make("snippets.$name", compact('errors'))->render();

然后,可以返回此html字符串。

代码语言:javascript
复制
return ['html' => $html];

并从ajax完成的函数中访问它。

我希望这能帮到你

票数 3
EN

Stack Overflow用户

发布于 2016-08-04 08:38:05

假设您的html是名为abc.blade.php的视图文件,您可以在json中从您的控制器返回呈现的视图。

代码语言:javascript
复制
return response()->json([
'htmlcode' => View::make('abc')->render();
]);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38761950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档