【问题标题】:How to response ajax search output to view ~laravel如何响应ajax搜索输出查看~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') }}" alt="Card image cap">
                    <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。我将编辑并取消删除我的答案以反映这一点。

标签: javascript jquery json ajax laravel


【解决方案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。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-19
  • 2016-07-25
  • 1970-01-01
  • 2017-05-01
  • 1970-01-01
  • 2018-12-17
相关资源
最近更新 更多