Laravel Ajax实时搜索

时间:2019-12-06 17:17:39

标签: ajax laravel

在我的电子商务项目中,我有一个品牌列表。如您所见:enter image description here

我想更改键盘上的品牌列表。像这样:

enter image description here

我在刀片中写了一些代码来使用ajax传递信息:

<script type="text/javascript">
    $('#search').on('keyup',function(){
        var value=$(this).val();
        var filter=$(this).parent().siblings('div').children().children().children().children('input').attr('name');
        var url = window.location.href;
        var id = url.substring(url.lastIndexOf('/') + 1);
        console.log(filter);
        $.ajax({
            type : 'get',
            url : 'categories/live',
            data:{search:value,id:id,filter:filter},
            success:function(data){
                $('#result').html(data);
            }
        });
    })
</script>

然后我在web.php中定义路由;

    Route::get('categories/live','CategoryController@live_search');

这是CategoryController:

<?php

namespace App\Http\Controllers;

use App\Category;
use App\Filter;
use App\product;
use App\ProductQa;
use App\QaLike;
use Illuminate\Http\Request;

class CategoryController extends Controller
{
    public function live_search(Request $request)
    {
        if ($request->ajax()) {
            $id = $request->input('id');
            $value = $request->input('value');
            $filter = $request->input('filter');
            if ((Filter::where([['en_name', '=', $filter], ['cat_id', '=', $id]])->first()) != Null) {
            $output="";
            $filters=Filter::where([['name', 'like', $value]])->get();
            //return response()->json(['search' => 'ok'],compact('filters'));
                if($filters) {
                    foreach ($filters as $key => $filter) {
                        $output .=
                            '<li>' . $filter->name . '</li>';
                    }
                }
            }
        }
    }
}

我可以在刀片中显示传递的数据,但是我不知道如何用ajax刷新keyup上的品牌列表。 我应该在模型中定义功能吗?

0 个答案:

没有答案