我正在尝试制作如下所示的自动完成表单,但由于我的数据库查询正常,该表单未显示建议。
窗体:
控制器方法代码:
路线:
当我在链接上搜索时,我得到这样的查询结果:
显示结果:
[{"id":1,"value":"sourav hossen"},{"id":2,"value":"sourav hossen"},{"id":3,"value":"sourav hossen "},{"id":4,"value":"a b"},{"id":5,"value":"a a"}]
试试这个改变,一些时间会奏效。
source: "{{URL::route('autocomplete')}}",
我试着用 jquery ajax 来做,它成功了。
首先,您应该在以下代码之前包含一个 jquery 库。
你认为的javascript代码应该是:
<script>
$(document).ready(function(){
$('#q').keyup(function () {
var q=$(this).val();
if(word.length>3) {
$.ajax
({
type: "GET",
url: "test2",
data: {q:q},
contentType: "json",
cache: false,
success: function(data, status, xhr)
{
$('#q').val(data[0].value);
}
});
}
});
});
</script>
在您的控制器中,您应该获取 ajax 数据
public function autocomplete(Request $request)
{
$input = $request->all();
$term = $input['q'];
$result = array();
$queries = ...(do whatever you like)
->take(5)->get();
foreach($queries as $query)
{
$result[] = ['id'=> $query->id,'value'=>$query->firstname.' '.$query->lastname];
}
return response()->json($result);
}
试试这个,如果你发现任何困难,我会在这里。