Laravel 5如何将AJAX响应JSON转换为PHP,以便我可以在视图上使用foreach循环使用它?

Laravel 5如何将AJAX响应JSON转换为PHP,以便我可以在视图上使用foreach循环使用它?,php,jquery,json,ajax,laravel-5,Php,Jquery,Json,Ajax,Laravel 5,我正在为我的用户表开发一个AJAX搜索函数,我已经成功地获取了,直到我返回了响应JSON文件的内容。但是我不知道如何将它的内容交给$usersPHP数组,这样我就可以循环使用它了 JS: $('.searchbar').keypress(function (e) { if (e.which == 13) { $.ajax({ dataType: "json", url: '/results', dat

我正在为我的
用户
表开发一个AJAX搜索函数,我已经成功地获取了,直到我返回了响应JSON文件的内容。但是我不知道如何将它的内容交给
$users
PHP数组,这样我就可以循环使用它了

JS:

$('.searchbar').keypress(function (e) {
    if (e.which == 13) {
        $.ajax({
            dataType: "json",
            url: '/results',
            data: {keyword: $('.searchbar').value()},
            success: function (result) {
                    console.log(result);
            },
            error: function(){
                    console.log("No results for " + data + ".");
            }
        });
    }
});
路由:
route::get('results','SearchesController@search');

搜索控制器中的搜索功能

public function search(Request $request) {

    $keyword = $request->get('keyword');

    $users = \App\User::where("username", "LIKE","%$keyword%")
            ->orWhere("firstname", "LIKE", "%$keyword%")
            ->orWhere("lastname", "LIKE", "%$keyword%")
            ->orWhere("email", "LIKE", "%$keyword%")
            ->orWhere("phone", "LIKE", "%$keyword%")->get();

    return \Response::json($users);

}
观点:

@foreach($users as $user)
    <tr>
      <td class='text-center'>{{$user->username}}</td>
      <td class='text-center'>{{$user->firstname}}</td>
      <td class='text-center'>{{$user->lastname}}</td>
      <td class='text-center'>{{$user->email}}</td>
      <td class='text-center'>{{$user->phone}}</td>
      <td class='text-center'>{!! link_to_action('UsersController@edit', 'Edit', $user->id, ['class'=>'btn btn-warning', 'style'=>'margin-bottom:5px']); !!}
        {!! Form::open(['action' => ['UsersController@destroy', $user->id], 'method' => 'DELETE']) !!}
            {!! Form::submit('Delete', ['class'=>'btn btn-danger']) !!}
        {!! Form::close() !!}</td>
    </tr>
@endforeach
@foreach($users作为$user)
{{$user->username}
{{$user->firstname}
{{$user->lastname}
{{$user->email}
{{$user->phone}
{!!将_链接到_操作('UsersController@edit“,”编辑“,$user->id,['class'=>'btn btn warning',”样式'=>'margin-bottom:5px'])
{!!Form::open(['action'=>['UsersController@destroy“,$user->id],“方法”=>“删除”])
{!!表单::提交('Delete',['class'=>'btn-btn-danger'])
{!!Form::close()!!}
@endforeach
因此,很快,
\Response::json($users)的内容就会出现
应该以
$users
的形式出现在视图中。或者我应该改变我的整个方法,并找到一个解决方案,用JS处理
console.log
所有问题吗

提前谢谢

试试这个:

控制器

阿贾克斯

改变


您应该使用模板引擎通过js创建表,使用-
underline.js
是否将数组传递到视图中?实际上,这正是问题所在,“如何?”:)替换
return\Response::json($users)带有
返回视图('results',数组('users'=>$users))啊,所以你使用
返回视图('results',数组('users'=>$users))
这将传递变量
用户
,并呈现显示表的
结果
视图,直到相同的结果,因为我认为这不是我问题的答案。我得到了结果,这不是问题。但是我怎样才能在表中以相同的方式显示它们呢?我可以将它协调到PHP变量$users中并通过它进行循环,还是应该换成另一种方法并使用JS来显示它们?
 $users = \App\User::where("username", "LIKE","%$keyword%")
                ->orWhere("firstname", "LIKE", "%$keyword%")
                ->orWhere("lastname", "LIKE", "%$keyword%")
                ->orWhere("email", "LIKE", "%$keyword%")
                ->orWhere("phone", "LIKE", "%$keyword%")->get();

if($users)
    return response()->json(['users' => $users], 200);

return response()->json(['msg' => 'No result found!'], 404);
success: function (data) {
    $.each(data.users, function(i, user){
        //do something
        consloe.log(user.firstname);
    });
},
error: function(error){
    console.log(error.msg);
}
return \Response::json($users);
return view('results', array( 'users' => $users ));