laravel自动完成文本视图

laravel auto complete Text View

本文关键字:文本 视图 laravel      更新时间:2023-09-26

我使用的是Laravel 5.2。

这是我的代码

    //for header
        <head>
        <script type="text/javascript" src="{{ URL::asset('src/js/jquery-1.10.2.js') }}"></script>
            <script type="text/javascript" src="{{ URL::asset('src/js/jquery-ui.js') }}"></script>  
            <link rel="stylesheet" href="{{ URL::to('src/css/jquery-ui.css') }}">  
        </head>
//body
<div class="col-sm-6 feature" >
        <div class="ui-widget">
          <label for="skills">Skills: </label>
          <input type="text" class="search_keyword" id="skills" placeholder="Search.." name="skills" />
        </div>
        <script>
            $(function() {
                $( "#skills" ).autocomplete({
                     source: "{{URL::route('auto')}}"
                    //source: ["a","b"]
                });
            });
        </script>
    </div><!-- end feature -->
//route
Route::get('/', function () {
    return view('welcome');
});
Route::get('/auto', [
    'uses' => 'SearchController@AutoSug',
    'as' => 'auto'
    ]);

//controller
class SearchController extends Controller
{
public function AutoSug()
    {
        $auto_s = DB::table('skills')
                ->pluck('skill');
        return response()->json($auto_s);
    }
}

现在的问题是,当我手动浏览链接{{URL::route('auto')}}时,上面写着json视图

所以问题是它没有给出它应该在这里看到的主视图

但如果我改变代码"{{URL:路线(汽车)}}"来源:"a"、"b"。它输出正确。那么问题出在哪里呢?

这就是解决方案。

对于javascript,请写如下

$(function()
      {
           $( "#q" ).autocomplete({
            source: "{{URL('auto')}}",
            minLength: 1,
            select: function(event, ui) {
            $( "#q" ).val(ui.item.value);
            }       
             });
       });

控制器请添加如下

namespace App'Http'Controllers;
    use Illuminate'Http'Request;
    use App'Http'Controllers'Controller;
    use Illuminate'Support'Facades'Input;
    use App'Product;
    use DB;
    class SearchController extends Controller
    {
    public function autoComplete()
        {
            $term = Input::get('term');
            $results = array();
            $queries = DB::table('skills')
            ->where('skill', 'LIKE', '%'.$term.'%')
            ->take(9)->get();
        foreach ($queries as $query)
        {
            $results[] = [ 'id' => $query->ID, 'value' => $query->skill];
        }

        return response()->json($results);
        }
    }

问题是在控制器中,它正在为get变量获取空值,查询生成器正在从数据库返回所有结果。我已经添加了一个库和关联变量如下,并解决了这个问题。

use Illuminate'Support'Facades'Input;
$term = Input::get('term');

希望对其他遇到同样问题的人有所帮助。

我希望下面的链接对你有帮助。

    https://gist.github.com/imranismail/10200241?signup=true
  1. https://gist.github.com/manoj-nandakumar/11beb90916dfbdc6af7a