在我的电子商务项目中,我有一个品牌列表。如您所见: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上的品牌列表。 我应该在模型中定义功能吗?