Laravel 5.2 - 自动完成建议

时间:2016-10-24 18:47:55

标签: javascript php jquery laravel

我正在从我的数据库列表中创建一个输入自动完成建议,但我有一些问题,我的输入显示建议如图:

enter image description here

问题:我的控制器显示了我想要的10个项目,但是这些术语效果不好,因为你可以看到我是否写了我的市政“米兰”它没有正确建议,实际上我的控制器正在显示第一个我的10个项目。

enter image description here

我的控制者:

public function getData(Request $request) {
    $termn = $request->input('municipality');
    // controllo
    $data = Municipality::where('name', 'LIKE', '%'.$termn.'%')->take(10)
    ->get();
    $results = array();
    foreach($data as $v){
        $results[]=['id' => $v->id, 'value' => $v->name];
    }
    //return $results;
    return response()->json($results);
}

路线

Route::get('getdata', 'PostController@getData');

JS

$('#searchname').autocomplete({
    minLength: 1,
    autoFocus: true,
    source: $('#route-url').val(),
    select: function(e, ui){ 

        console.log(ui.item.id);// it work and show me id of item selected
    },
});

查看表格

<!-- Select Basic -->
    <div class="form-group">
    <label class="col-md-3 control-label" for="seller-Location">Municipality</label>
    <div class="col-md-8">
       <input 
               type="text" 
               name="municipality"
               placeholder="comune"
               class="form-control input-md"
               id="searchname">
      <input type="hidden" id="route-url" value="{{ url('getdata') }}">
       </div>
</div>

1 个答案:

答案 0 :(得分:0)

如果dd为空,那是因为此密钥没有数据:)

使用var_dump($request->all());dd($request->all());

您将拥有所有可用参数的lsit。 我可以在您的javascript代码source: $('#route-url').val(),上看到。 所以,我想你会有这样的价值观:

如果dd的结果是:

  • 'source'=&gt; '...'然后,你将不得不使用$ request-&gt;输入('source')
  • 0 =&gt; '...'然后,source是一个数组。也许试试source: {municipality: $('#route-url').val()}
  • 如果数据为空,那么您还有另一个问题。阅读自动完成库的文档/示例