【发布时间】:2020-08-24 23:26:28
【问题描述】:
我在我的 table td 中使用 laravel 和 ajax 进行了实时搜索,当我尝试在控制器中使用 onClick="location.href=''" 中的参数传递命名路由时,它不起作用。但是没有参数的命名路由没有问题。我该如何解决这个问题?
我的控制器:
function action(Request $request)
{
if($request->ajax())
{
$output = '';
if($query != '')
{
$data = DB::table('banners')
->where('id', 'like', '%'.$query.'%')
->orWhere('Caption_Heading', 'like', '%'.$query.'%')
->orWhere('Caption_Description', 'like', '%'.$query.'%')
->orderBy('id', 'desc')
->get();
}
else
{
$data = DB::table('banners')
->orderBy('id', 'desc')
->get();
}
$total_row = $data->count();
if($total_row > 0)
{
foreach($data as $row)
{
$route = route('banners.edit',$banner);
$output .= '
<tr>
<th scope="row"><input type="checkbox" name="ids[]" class="selectbox" value="'.$row->id.'" onchange="change()"></th>
<td onClick="location.href='.$route.'" style="cursor: pointer">'.$row->id.'</td>
<td style="cursor: pointer"><img src="/storage/'.$row->Banner_Image.'" alt="'.$row->Caption_Heading.'" class="img-thumbnail" width="70px" height="100px"></td>
<td style="cursor: pointer">'.$row->Caption_Description.'</td>
<td style="cursor: pointer">'.$row->Caption_Description.'</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);
}
}
我的 web.php:
Route::prefix('banners')->group(function() {
Route::get('/', 'AdminVisible\BannerController@index')->name('banner');
Route::get('/action', 'AdminVisible\BannerController@action')->name('banner.action');
Route::get('/create', 'AdminVisible\BannerController@create')->name('banners.create');
Route::post('/create', 'AdminVisible\BannerController@store')->name('banners.store');
Route::delete('/delete','AdminVisible\BannerController@delete')->name('banners.delete');
Route::get('{banner}/edit', 'AdminVisible\BannerController@edit')->name('banners.edit');
Route::patch('/{banner}', 'AdminVisible\BannerController@update')->name('banners.update');
});
我的js文件:
$(document).ready(function(){
fetch_customer_data();
function fetch_customer_data(query = '')
{
$.ajax({
url:"{{ route('banner.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);
});
});
【问题讨论】:
-
让你的路由参数可选。将您的路线代码和控制器代码与您的问题一起发布,以便我们提供帮助
-
@sta 等一下。编辑:我在上面添加了它
-
$request->get('query')如果您尝试使用 param 进行搜索,您会得到 null 吗? -
我认为
data:{query:query},将是data: { query: $("#search").val() }, -
@sta 好的让我试试