Javascript Laravel Live Search AJAX雄辩的可点击项目

Javascript Laravel Live Search AJAX雄辩的可点击项目,javascript,php,jquery,ajax,laravel,Javascript,Php,Jquery,Ajax,Laravel,我按照教程使用AJAX和Elount(访问数据库)在laravel应用程序中创建了一个实时搜索。现在我想知道,我如何才能使搜索结果可点击,所以我点击的东西被输入到输入字段中。不知何故,仅仅添加一个单击处理程序,然后将.val()设置到查询中似乎不起作用(我犯了一个错误)。。。PS:我也在使用jQuery 我怎么能这么做?准确地说,代码如下: 刀片模板: <div id="content"> <input type="search" name="keyword" place

我按照教程使用AJAX和Elount(访问数据库)在laravel应用程序中创建了一个实时搜索。现在我想知道,我如何才能使搜索结果可点击,所以我点击的东西被输入到输入字段中。不知何故,仅仅添加一个单击处理程序,然后将
.val()
设置到查询中似乎不起作用(我犯了一个错误)。。。PS:我也在使用jQuery

我怎么能这么做?准确地说,代码如下:

刀片模板:

<div id="content">
   <input type="search" name="keyword" placeholder="Search Names" id="searchbox">
   <div id="results"></div>
</div>
和php文件/函数处理:

public function Index(Request $request){
        $query = "%".$request->categorySearchTerm."%";
        $categories = Subcategory::where('name','LIKE',$query)->get();
        foreach($categories as $category){
            echo "<div id='item'>$category->name</div>";
        }
    }
公共功能索引(请求$Request){
$query=“%”,$request->categorySearchTerm.“%”;
$categories=Subcategory::where('name','LIKE',$query)->get();
foreach($categories作为$category){
回显“$category->name”;
}
}

现在,我如何才能得到我想要的,所以单击该项会将该项的内容放入输入字段?

您可以尝试添加category as data属性,以便使用jQuery获得如下内容:

public function Index(Request $request){
    $query = "%".$request->categorySearchTerm."%";
    $categories = Subcategory::where('name','LIKE',$query)->get();
    foreach($categories as $category){
        echo "<div id='item' data-name='$category->name'>$category->name</div>";
    }
}
$(document).on('click', '#item', function() {
    $('input').val($(this).data('name'));
});

这个想法在这里起作用:

echo“name.”);“>$category->name”
相反,您在ForEach中的代码看起来似乎合理,但只有一件事:在这个php文件(在控制器中)中,我没有可用的jquery(可能我在描述中不够清楚),我只是在blade模板中有它。没有jQuery我怎么能做到这一点呢?@mcklayin刚刚试过:
echo“$categ‌​“姓名”但它不起作用,说
解析错误:语法错误,意外的“文档”(t_字符串),应为“,”或“;”工作正常,尝试了很多,但现在就这么简单;)谢谢;)还有一个问题:我能不能让搜索结果在点击它和输入中的内容后消失?或者这是更多的工作?您可以在您在输入中设置值的函数中删除结果div中的所有div。
$(document).on('click', '#item', function() {
    $('input').val($(this).data('name'));
});