Ajax 在视图中显示搜索结果

Ajax 在视图中显示搜索结果,ajax,laravel,laravel-5.2,Ajax,Laravel,Laravel 5.2,我有一个显示所有客户的页面。它使用分页,每页仅显示16个客户端。因此,我提供了实时搜索功能 执行搜索时,从结果中选择的选项将触发以下操作 select: function (event, ui) { $.ajax({ url: "/returnClient", type: "GET", datatype: "html", data: { value : ui.item.value },

我有一个显示所有客户的页面。它使用分页,每页仅显示16个客户端。因此,我提供了实时搜索功能

执行搜索时,从结果中选择的选项将触发以下操作

select: function (event, ui) {
    $.ajax({
        url: "/returnClient",
        type: "GET",
        datatype: "html",
        data: {
            value : ui.item.value
        },
        success: function(data) {
            $('.container').fadeOut().html(data.html).fadeIn();
        }
    });
}
它本质上调用以下函数

public function returnClient(Request $request)
{
    if($request->ajax()){
        $selectedClient = $request->input('value');
        $client = Client::where('clientName', $selectedClient)->first();

        $html = View::make('clients.search', $client)->render();
        return Response::json(array('html' => $html));
    }
}
如果我输出上面的客户机变量,我可以看到这个特定客户机的所有详细信息。然后将其传递给partial clients.search。 在clients.search中,如果我这样做

{{dd($client)}}
我得到一个未定义的变量:client。为什么它不能在视图中获取已解析的对象


非常感谢

问题在于您将
$client
不正确地传递给视图。显示了如何通过关联数组正确传递数据。确认数组是预期的数组

改为这样做:

public function returnClient(Request $request)
{
    if($request->ajax()){
        $selectedClient = $request->input('value');
        $client = Client::where('clientName', $selectedClient)->first();

        $html = View::make('clients.search', ['client' => $client])->render();
        return Response::json(array('html' => $html));
    }
}

此外,作为习惯点,您可能需要考虑使用<代码> DUMP()/<代码>而不是<代码> DDE()/代码> .< /P> < P>问题是您不正确地将代码> $Client < /代码>传递给视图。显示了如何通过关联数组正确传递数据。确认数组是预期的数组

改为这样做:

public function returnClient(Request $request)
{
    if($request->ajax()){
        $selectedClient = $request->input('value');
        $client = Client::where('clientName', $selectedClient)->first();

        $html = View::make('clients.search', ['client' => $client])->render();
        return Response::json(array('html' => $html));
    }
}

此外,作为习惯的一个方面,您可能需要考虑使用<代码> DUMP()/>代码>而不是<代码> DDE()/代码> .< /P>其他信息:<代码> DUMP()>代码>是函数“代码> DDE())/代码>幕后调用,所以它本质上是相同的事情,不需要死记硬背,也不接受可变数量的ARG。是函数

dd()
在幕后调用,因此它本质上是一样的,没有死亡,也不接受可变数量的参数。不确定您是否真正使用了这里的API。我认为更好的方法是在视图中呈现HTML,然后API将调用端点,并接收一些数据,这些数据通过Javascript在视图中填充。传递完整的HTML正在扼杀API的想法。不确定您是否真正使用了这里的API。我认为更好的方法是在视图中呈现HTML,然后API将调用端点,并接收一些数据,这些数据通过Javascript在视图中填充。传递完整的HTML正在扼杀API的理念。