MAO-EYE 2017-02-06 02:35 采纳率: 100%
浏览 29

用ajax laravel搜索

i need my project has a form serach, then i tried with this code, but when i execute console say POST http://localhost:8000/buscar 500 (Internal Server Error) then here is my view

<div id="qnimate" class="off">
    <div id="search" class="open">
        <button data-widget="remove" id="removeClass" class="closeSearch" type="button">×</button>
            <input type="text" placeholder="Buscar Noticias -  Articulos - Reviews"  id="buscar" onkeydown="keydownFunction()" onkeyup="keyupFunction()">
            <button class="btn btn-lg btn-site" type="submit"><span class="glyphicon glyphicon-search"></span> Buscar</button>
        <div id="resultadoBusqueda" class="col-md-12"></div>
    </div>
</div>

here is my controller

public function buscar()
    {
        $keywords = Input::get('keywords');
        $reviews = Reviews::where('estado','1')->take();
        $buscarReviews = new \Illuminate\Database\Eloquent\Collection();
        foreach ($reviews as $review) {
            if(Str::contains(Str::lover($review->nombre), Str::lover($keywords)))
                $buscarReviews->add($review);
        }
        return view::make('busqueda')->with('buscarReviews', $buscarReviews);
    }

here is the view wich show the information

@foreach($buscarReviews as $review)
    <div id="reviews" class="col-md-12">
        <a href="/review/{{$review->slug}}" class="link"></a>
        <div class="col-md-4">
            <img src="Imagenes/{{$review->logo}}" width="50">
        </div>
        <div class="col-md-8">
            <h2>{{$review->nombre}}</h2>
            <div>{!! str_limit($review->descripcion, $limit = 150, $end = '...') !!}</div>
        </div>

    </div>
@endforeach

here is my js

var timer;
  function keydownFunction(){
    timer = setTimeout(function(){
        var keywords = $('#buscar').val();

        if(keywords.length > 0){
          $.post('/buscar', {keywords: keywords}, function(markup){
            $('#resultadoBusqueda').html(markup);
          });
        }

    }, 500);
  }
  function keyupFunction(){
    clearTimeout(timer);
  }

i dont know what is the reason dont print the information requeried. Thank you.

  • 写回答

1条回答 默认 最新

  • H_MZ 2017-02-06 06:27
    关注

    you are sending post request from ajax but in your controller you are trying to get that value using get, try this code

    public function buscar(Request $request) { $keywords = $request->keywords; $reviews = Reviews::where('estado','1')->take(); $buscarReviews = new \Illuminate\Database\Eloquent\Collection(); foreach ($reviews as $review) { if(Str::contains(Str::lover($review->nombre), Str::lover($keywords))) $buscarReviews->add($review); } return view::make('busqueda')->with('buscarReviews', $buscarReviews); }

    also remember to change in route like this.

    Route::post('buscar', 'yourController@buscar');

    评论

报告相同问题?

悬赏问题

  • ¥15 Python报错怎么解决
  • ¥15 simulink如何调用DLL文件
  • ¥15 关于用pyqt6的项目开发该怎么把前段后端和业务层分离
  • ¥30 线性代数的问题,我真的忘了线代的知识了
  • ¥15 有谁能够把华为matebook e 高通骁龙850刷成安卓系统,或者安装安卓系统
  • ¥188 需要修改一个工具,懂得汇编的人来。
  • ¥15 livecharts wpf piechart 属性
  • ¥20 数学建模,尽量用matlab回答,论文格式
  • ¥15 昨天挂载了一下u盘,然后拔了
  • ¥30 win from 窗口最大最小化,控件放大缩小,闪烁问题