首页 > 解决方案 > 来自 MySQL 的自动完成 jQuery 不起作用

问题描述

我正在使用 Laravel 视图页面并使用 jQuery 从数据库中获取数据。我有其他功能工作正常,但我无法在这里看到我做错了什么。它返回一个空字段。

我附上了刀片、控制器web.php、 ..的代码片段default.js

请帮帮我 :)

/* default.js*/
$( ".search_doc_name" ).autocomplete({
  source: "/search/doc_name",
  minLength: 1,
  response: function(event, ui) {
    if (ui.content.length === 0) {
      $(this).parent().addClass('has-error');
      $(this).next().removeClass('glyphicon-ok').addClass('glyphicon-remove');

      $(".search_doc_name_empty").show();
      $('.form_submit').hide();
    } else {
      $(".search_doc_name_empty").hide();
      $('.form_submit').show();
    }
  },
  select: function(event, ui) {
    $('.search_doc_id').val(ui.item.id);
    $('.search_doc_name').val(ui.item.value);
  }
});

$( ".search_doc_name" ).on('keyup',function(){
   $(".search_doc_name_empty").hide();
});
/*And this is my controller :*/
public function doc_name(Request $request){
  $term = $request['term'];
  $input = $request->all();

  $results = array();

  $queries = \App\Models\DoctorsDetail::where('doc_name', 'LIKE', '%'.$term.'%')->take(25)->get();

  foreach ($queries as $key => $value)
    {
       $queries[$key]['value'] = $value->doc_name;
    }

    return \Response::json($queries);
}
/* web.php*/
Route::group(['prefix' => 'search'], function () {
  Route::any('/doc_name', 'SearchController@doc_name');
});
/*blade*/
  <div class="col-sm-6">
    <div class="form-group">
      <label>اسم الدكتور</label><br>
      <input type="text" class="form-control search_doc_name"  placeholder="Type here ..." name="doc_name">
      <span class="help-block search_doc_name_empty" style="display: none;">No Results Found ...</span>
      <input type="hidden" class="search_doc_id" name="doc_id">
    </div>
  </div>

标签: jquerymysqllaravellaravel-blade

解决方案


它在清除缓存后自行解决。突然开始工作


推荐阅读