我的问题是当我添加ajax实时搜索时是否重复数据,为什么重复数据?
在我的 控制器 上,我有此代码,请检查是否我认为这是重复数据的地方或我错了吗?
function action(Request $request)
{
if($request->ajax())
{
$output = '';
$query = $request->get('query');
if($query != '')
{
$data = DB::table('employeefms')
->where('last_name', 'like', '%'.$query.'%')
->orWhere('first_name', 'like', '%'.$query.'%')
->orWhere('employee_no', 'like', '%'.$query.'%')
->get();
}
else
{
$data = DB::table('employeefms')
->orderBy('last_name', 'desc')
->get();
}
$total_row = $data->count();
if($total_row > 0)
{
foreach($data as $row)
{
$output .= '
<tr>
<td>'.$row->employee_no.'</td>
<td>'.$row->last_name.'</td>
<td>'.$row->first_name.'</td>
<td>'.$row->middle_name.'</td>
<td>'.$row->nick_name.'</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);
}
}
这是我的 Ajax代码
您是否还可以检查此ajax,如果有什么原因触发了它的重复操作?
<script type="text/javascript">
$(document).ready(function(){
fetch_customer_data();
function fetch_customer_data(query = '')
{
$.ajax({
url:"{{ route('admin.employeemaintenance.show.action') }}",
method:'GET',
data:{query:query},
dataType:'json',
success:function(data)
{
$('tbody').html(data.table_data);
$('#total_records').text(data.total_data);
}
})
}
$(document).on('keyup', '#search', function(){
var query = $(this).val();
fetch_customer_data(query);
});
});
</script>
我的 路线
Route::get('/admin/employeemaintenance/show/action', 'Admin\EmployeeFilemController@action')->name('admin.employeemaintenance.show.action');
我的 查看表
请在这里查看是否需要在此处添加一些内容
@foreach ($employees as $employee)
<tbody>
<tr>
<td>{{ $employee->employee_no}}</td>
<td>{{ $employee->last_name}}</td>
<td>{{ $employee->first_name}}</td>
<td>{{ $employee->middle_name}}</td>
<td>{{ $employee->nick_name}}</td>
答案 0 :(得分:0)
您为每个员工都有一个tbody
标签,并且您的javascript正在将ajax响应插入所有员工中:
$('tbody').html(data.table_data);
尝试将foreach
移到tbody
内,然后循环遍历tr
元素:
<tbody>
@foreach ($employees as $employee)
<tr>
<td>{{ $employee->employee_no}}</td>
<td>{{ $employee->last_name}}</td>
<td>{{ $employee->first_name}}</td>
<td>{{ $employee->middle_name}}</td>
<td>{{ $employee->nick_name}}</td>