我试图在我的laravel应用程序中实现自动完成搜索系统。我已正确存储了所有css和js文件。现在,当我输入与数据库的指定字段匹配的内容时,会出现一些没有任何文本的小框。问题是什么?为什么我不能将响应数据传递给视图?
这是我的控制器。
public function autocomplete(Request $request){
$term=$request->term;
$data=User::where('name','LIKE','%'.$term.'%')->take(10)->get();
$result=array();
foreach($data as $key=>$user){
$result[]=['name'=>$user->name];
}
return response()->json($result);
}
以下是我的观点。
<?php include "/Assests_PHP/JS.php";?>
<?php include "/Assests_PHP/CSS.php";?>
<script src="https://code.jquery.com/ui/1.12.0-beta.1/jquery-ui.js"></script>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css" type="text/css">
<div class="row">
<div class="col-md-6 col-md-offset-3">
<section class="panel panel-default">
<header class="panel-heading">
<input type="text" name="name" id="searchname" class="form-control" placeholder="search user"/>
</header>
<div class="panel-body">
</div>
</section>
</div>
</div>
<script type="text/javascript">
$('#searchname').autocomplete({
source:'{!!URL::route('autocomplete')!!}',
minlength:1,
autoFocus:true,
select:function(e,ui){
alert(ui);
}
});
答案 0 :(得分:0)
问题是什么
您的对象结构与自动填充 来源 文档的预期默认值不匹配
数组:数组可用于本地数据。有两个支持 格式:
An array of strings: [ "Choice1", "Choice2" ] An array of objects with label and value properties: [ { label: "Choice1", value: "value1" }, ... ]
标签属性显示在建议菜单中。价值会 当用户选择项目时插入到input元素中。如果 只指定了一个属性,它将用于两者,例如,如果你 只提供值属性,该值也将用作 标签