使用 AJAX 的多个实时搜索 Laravel
Posted
技术标签:
【中文标题】使用 AJAX 的多个实时搜索 Laravel【英文标题】:Multiple Live Search Laravel using AJAX 【发布时间】: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);
-
我可以获取所有数据,这意味着
else
代码正在运行
当我输入表单#search 时,我可以获得查询搜索。
当我输入表单#search 和表单#searchkanban 时,结果是空表,就像找不到一样。有时得到数据但错误的数据。我从https://www.webslesson.info/2018/04/live-search-in-laravel-using-ajax.html 更新了这段代码。之前只使用 1 个搜索表单,现在我想使用 2 个搜索表单。
提前致谢
【问题讨论】:
orderno
和jobno
都来自$(this).val()
。我认为你在这里犯了一个错误。
天哪,谢谢你救了我@bravemaster。我用#formname 更改$(this).val()
。
【参考方案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);
);
【讨论】:
以上是关于使用 AJAX 的多个实时搜索 Laravel的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 jQuery ajax 实时搜索 Django 中的模型?