【问题标题】:Multiple Live Search Laravel using AJAX使用 AJAX 的多个实时搜索 Laravel
【发布时间】:2020-10-08 07:10:17
【问题描述】:

谁能帮我找出我的代码出了什么问题?

我正在尝试使用 AJAX 搜索 2 种形式

这是我的代码

刀片

$(document).ready(function(){

 load_data();

 function load_data(orderno = '', jobno= '')
 {
  $.ajax({
   url:"{{ route('live_search.action') }}",
   method:'GET',
   data:{orderno:orderno,jobno:jobno},
   dataType:'json',
   success:function(data)
   {
    $('tbody').html(data.table_data);
    $('#total_records').text(data.total_data);
   }
  })
 }

 $(document).on('keyup', '#search', function(){
  var orderno = $(this).val();
  var jobno = $(this).val();
  load_data(orderno,jobno);
 });


 $(document).on('keyup', '#searchkanban', function(){
  var orderno = $(this).val();
  var jobno = $(this).val();
  load_data(orderno,jobno);
 });



});
</script> 

这是我的控制器

    {
      if($request->ajax())
      {
          $output = '';
          $query = $request->get('orderno');
          $query2 = $request->get('jobno');


          if($query != '' && $query2 == '')
          {
            $data = DB::table('scankanban')
              ->where('sk_orderNo', 'like', '%'.$query.'%')

              ->orderBy('id', 'asc')
              ->get();

          }

          else if($query != '' && $query2 != '')
          {
            $data = DB::table('scankanban')
              ->where('sk_orderNo', 'like', '%'.$query.'%')
              ->Where('sk_jobNo', 'like', '%'.$query2.'%')

              ->orderBy('id', 'asc')
              ->get();

          } 
          else // get all if not found
          {
            $data = DB::table('scankanban')
              ->orderBy('id', 'asc')
              ->get();
          }

          $total_row = $data->count();

          if($total_row > 0)
          {
              foreach($data as $row)
              {
                $output .= '
                <tr>
                <td>'.$row->sk_orderNo.'</td>
                <td>'.$row->sk_jobNo.'</td>
                <td>'.$row->sk_orderKanban.'</td>
                <td>'.$row->sk_scanID.'</td>
                <td>'.$row->sk_status.'</td>
                </tr>
                ';
              }
          }
          else
          {
              $output = '
              <tr>
                <td align="center" colspan="5">No Data Found</td>
              </tr>
              ';
          }
          $data = array(
              'table_data'  => $output,
              'total_data'  => $total_row
          );

          echo json_encode($data);
        }
    } 
  1. 我可以获取所有数据,这意味着 else 代码正在运行
  2. 当我输入表单#search 时,我可以获得查询搜索。
  3. 当我输入表单#search 和表单#searchkanban 时,结果是空表,就像找不到一样。有时得到数据但错误的数据。我从https://www.webslesson.info/2018/04/live-search-in-laravel-using-ajax.html 更新了这段代码。之前只使用 1 个搜索表单,现在我想使用 2 个搜索表单。

提前致谢

【问题讨论】:

  • ordernojobno 都来自$(this).val()。我认为你在这里犯了一个错误。
  • 天哪,谢谢你救了我@bravemaster。我用#formname 更改$(this).val()

标签: javascript php jquery ajax laravel-5


【解决方案1】:

这是正确的代码。感谢@bravemaster。我的错误只在#formname

 $(document).on('keyup', '#search', function(){
 var orderno = $("#search").val();
 var jobno = $("#searchkanban").val();
 load_data(orderno,jobno);
 });


 $(document).on('keyup', '#searchkanban', function(){
 var orderno = $("#search").val();
 var jobno = $("#searchkanban").val();
 load_data(orderno,jobno);
 });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-10-17
    • 1970-01-01
    • 1970-01-01
    • 2016-10-20
    • 1970-01-01
    • 1970-01-01
    • 2018-01-30
    • 1970-01-01
    相关资源
    最近更新 更多