如何响应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->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的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Firefox 中解码来自 jQuery $.ajax 请求的 XML 响应