首页 > 解决方案 > Ajax laravel 不在控制台中返回单条记录,但在 html 中没有返回所有数据

问题描述

我正在尝试使用用户在文本框中输入产品代码并单击按钮以查看使用 ajax 和 laravel 的产品详细信息的搜索功能。

这是我的路线

Route::get('tracking', 'ClientController@show')->name('tracking');

和我的控制器(ClientController)

public function show(Request $request){
    $no_smu = $request->input('search');
    $tracking = Incoming::where('no_smu', 'like', '%' . $no_smu . '%')->get();
    return response()->json($tracking);
}

我的表格刀片

<form class="lockscreen-credentials" id="form">
  <div class="input-group">
    <input type="text" name="no_smu" id="no_smu" class="form-control" placeholder="SMU Number">
    <div class="input-group-append">
      <button type="submit" id="submit" class="btn"><i class="fas fa-arrow-right text-muted"></i></a>
    </div>
  </div>
</form>

<div class="help-block text-center" id="content">
 <!-- data should load here -->
</div>

ajax 脚本

  $(document).ready(function(){
    $.ajaxSetup({
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            }
        });

    $('#submit').on('click', function(e){
      e.preventDefault();
      var no_smu = $('#no_smu').val();
      // alert(no_smu);
      $.ajax({
        type: "GET",
        url: "{{ route('tracking') }}",
        dataType: "json",
        data: {'no_smu' : no_smu},
        success: function(data){
          console.log(data);
          // $('#content').html(data);
        }
      });
    });
  });

问题,它返回所有数据而不是输入产品的单个数据,如果我评论console.log(data)和取消评论$('#content').html(data)它什么也没有返回。

标签: ajaxlaravel

解决方案


使您的控制器代码如下。

public function show(Request $request){
    $no_smu = $request->input('search');
    $tracking = Incoming::where('no_smu', 'like', '%' . $no_smu . '%')->first();
    return view('traking_data');
}

在视图文件夹下创建一个新的视图文件,您可以在其中添加 HTML 进行打印

traking_data.blade.php

<div>
{{ $tracking->no_smu }}
</div>

它会在ajax中返回HTML

$('#content').html(data)

推荐阅读