如何响应ajax搜索输出查看~laravel

Posted

技术标签:

【中文标题】如何响应ajax搜索输出查看~laravel【英文标题】:How to response ajax search output to view ~laravel 【发布时间】:2019-07-15 00:04:29 【问题描述】:

我正在尝试将我的 ajax 上的 json 响应发送到我在 laraveL 上的视图中。 但是我找不到任何好的代码,考试

public function viewMasakanAjax(Request $request)

    if($request->ajax())
    

        $alberMasakan = Masakan::where('alber_nama_masakan','LIKE','%'.$request->search."%")->get();

        return response()->json($alberMasakan)->view('kasir/ajax-menu');
    

当我尝试该代码时,它不起作用。

这也是我的看法

@foreach($alberMasakan as $alberData)
<div class="col-xl-3 col-lg-6 col-md-6 col-sm-12 col-12">
    <div class="card card-figure">
        <figure class="figure">
            <div class="figure-img">
                <figure class="figure">
                    <img class="img-fluid" src=" asset('kasir/images/seafood.jpg') " >
                    <figcaption class="figure-caption">
                        <h6 class="figure-title"> Simple figure </h6>
                        <p class="text-muted mb-0"> Give some text description </p>
                    </figcaption>
                </figure>
        </figure>
    </div>
</div>
@endforeach

这里是我的 ajax 代码

<script>

$('#cariData').on('keyup',function()
    $value=$(this).val();
    $.ajax(   
        type : 'get',
        url : 'route('admin.ajax')',
        data:'search':$value,
        success:function(data)
            $('.ajax').html(data);
            if ($value == '') 
                $('.isi').remove();
            
        
    );
)

</script>


<script type="text/javascript">

    $.ajaxSetup( headers:  'csrftoken' : ' csrf_token() '  );

</script>

我在 web.php 上的路线

Route::get('/cari', 'KasirRestoran\DetailOrderController@viewMasakanAjax')->name('admin.ajax');

【问题讨论】:

来自代码$('.ajax').html(data),我假设您希望/cari API 返回 HTML 而不是 JSON。在这种情况下,您可能希望在控制器中使用它:return view('kasir/ajax-menu', $alberMasakan); 如果某些东西不起作用,您应该发布详细信息,具体说明什么不起作用、任何错误等等。“它不起作用”并不能告诉我们太多关于实际发生的事情。跨度> 好吧,我认为我的代码不起作用,因为 $('.ajax').html(data); 代码正在将 json 数据替换为 HTML @DaveS 没有出现任何错误消息,只是我的kasir/ajax-menu 无法正常工作。可能会导致这个问题$('.ajax').html(data) 那么你不需要 JSON 数据,你需要 HTML。我将编辑并取消删除我的答案以反映这一点。 【参考方案1】:

您可以返回任一 $response-&gt;json() view(),但不能同时返回。

您的 javascript 期望看到 HTML 内容,但您正在向它提供 JSON 数据。要将数据传递给视图,请使用以下内容:

public function viewMasakanAjax(Request $request)

    if ($request->ajax()) 
        $alberMasakan = Masakan::where('alber_nama_masakan','LIKE','%'.$request->search."%")->get();

        // Pass $alberMasakan as data along to the view
        // Same as view('kasir/ajax-menu')->with($alberMasakan)
        return view('kasir/ajax-menu', $alberMasakan);
    

【讨论】:

还是不行return view('kasir/ajax-menu', $alberMasakan); 我的控制台出现错误GET http://localhost/UjikomAlber/public/admin/cari?search=sea 500 (Internal Server Error)【参考方案2】:

你应该试试

public function viewMasakanAjax(Request $request)

    if($request->ajax())
    

        $alberMasakan = Masakan::where('alber_nama_masakan','LIKE','%'.$request->search."%")->get();

        return response()->json($alberMasakan);
    

【讨论】:

我如何将 $alberMasakan 发送到我的视图中? 您应该在 ajax 响应中通过 javascript 设置 html。

以上是关于如何响应ajax搜索输出查看~laravel的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Flux 架构中处理 ajax 请求响应?

如何在 Firefox 中解码来自 jQuery $.ajax 请求的 XML 响应

如何以完全响应的方式在中心执行此引导搜索框?

在 Chrome 开发者工具中查看 AJAX 响应内容?

在哪里可以查看Response Headers信息? 如何查看网页的响应头

通过 Chrome 开发者工具查看来自 Ajax 调用的 HTML 响应?