自动完成阿贾克斯laravel
问题描述:
你好,我需要做的自动完成功能,有些城市我已经在我的分贝 所以我的代码是这样的:自动完成阿贾克斯laravel
查看
<input type="text" name="ville" id="ville" class="small" placeholder="Entrer la ville souhaité">
<script type="text/javascript">
$(function() {
$("#ville").autocomplete({
source:'{!!URL::route('autocomplete')!!}',
minlength:1,
autoFocus:true,
select:function(e,ui)
{
$('#ville').val(ui.item.value);
}
});
});
</script>
控制器
class VilleController extends Controller
{
public function autocomplete(Request $request)
{
$term = $request->term;
$queries = DB::table('ville')
->where('libelle_ville', 'like', '%'.$term.'%')
->take(6)->get();
foreach ($queries as $query)
{
$results[] = ['id' => $query->id, 'value' => $query->libelle_ville]; //you can take custom values as you want
}
return response()->json($results);
}
}
路线
Route::get('/autocomplete', array('as' => 'autocomplete', 'uses'=>'[email protected]'));
它不告诉我,我有一个错误,它并没有显示我任何完成。
答
由于堆栈和EddyTheDove我发现该错误是aucomplete不是一个函数,所以我不得不删除barkets和$功能,所以它会是这样的脚本标签
<script type="text/javascript">
$("#ville").autocomplete({
source:'{!!URL::route('autocomplete')!!}',
minlength:1,
autoFocus:true,
select:function(e,ui)
{
$('#ville').val(ui.item.value);
}
});
</script>
答
与laravel调试JSON请求是有点难度,我建议你下载这个包
https://github.com/ARCANEDEV/LogViewer
或手动storage/logs/laravel.log
打开laravel日志,看看什么事
也许是因为'$请求 - > term'总是空。 'term'来自哪里? – EddyTheDove
请求对象只有一个属性,它是长期的功能 –
第一线,做'DD($请求 - >项)',看看它是否包含你输入的字符串。 – EddyTheDove