简单的方法来显示Ajax?

问题描述:

我有6个控制器的功能,由ASC和DESC 3场命令。简单的方法来显示Ajax?

功能:

public function orderByIdAsc(){ 
     $projects = DB::table('projects')->orderBy('id','asc')->get(); 
     return view('cms.public.views.projects.menu', ['projects' => $projects]); 

    } 
    public function orderByIdDesc(){ 
     $projects = DB::table('projects')->orderBy('id','desc')->get(); 
     return view('cms.public.views.projects.menu', ['projects' => $projects]); 
    } 
    public function orderByOrderAsc(){ 
     $projects = DB::table('projects')->orderBy('order','asc')->get(); 
     return view('cms.public.views.projects.menu', ['projects' => $projects]); 
    } 
    public function orderByOrderDesc(){ 
     $projects = DB::table('projects')->orderBy('order','desc')->get(); 
     return view('cms.public.views.projects.menu', ['projects' => $projects]); 
    } 
    public function orderByPublicAsc(){ 
     $projects = DB::table('projects')->orderBy('public','asc')->get(); 
     return view('cms.public.views.projects.menu', ['projects' => $projects]); 
    } 
    public function orderByPublicDesc(){ 
     $projects = DB::table('projects')->orderBy('public','desc')->get(); 
     return view('cms.public.views.projects.menu', ['projects' => $projects]); 
    } 

与她的6条航线也:

Route::prefix('admin')->group(function() { 

    Route::get('project/orderByIdAsc', ['uses' => '[email protected]', 'as' => 'admin.projects.orderByIdAsc']); 
     Route::get('project/orderByIdDesc', ['uses' => '[email protected]', 'as' => 'admin.projects.orderByIdDesc']); 
     Route::get('project/orderByOrderAsc', ['uses' => '[email protected]', 'as' => 'admin.projects.orderByOrderAsc']); 
     Route::get('project/orderByOrderDesc', ['uses' => '[email protected]', 'as' => 'admin.projects.orderByOrderDesc']); 
     Route::get('project/orderByPublicAsc', ['uses' => '[email protected]', 'as' => 'admin.projects.orderByPublicAsc']); 
     Route::get('project/orderByPublicDesc', ['uses' => '[email protected]', 'as' => 'admin.projects.orderByPublicDesc']); 
}); 

目前我打电话给这里的功能:

<th><a href="{{ route('admin.projects.orderByIdAsc')}}"><span class="glyphicon glyphicon-arrow-up" id="orderByIdAsc"></span></a>Id<a href="{{ route('admin.projects.orderByIdDesc')}}"><span class="glyphicon glyphicon-arrow-down" id="orderByIdDesc"></span></a></th> 
<th>Slug</th> 
<th><a href="{{ route('admin.projects.orderByOrderAsc')}}"><span class="glyphicon glyphicon-arrow-up" id="orderByOrderAsc"></span></a>Order<a href="{{ route('admin.projects.orderByOrderDesc')}}"><span class="glyphicon glyphicon-arrow-down" id="orderByOrderDesc"></span></a></th> 
<th><a href="{{ route('admin.projects.orderByPublicAsc')}}"><span class="glyphicon glyphicon-arrow-up" id="orderByPublicAsc"></span></a>Public<a href="{{ route('admin.projects.orderByPublicDesc')}}"><span class="glyphicon glyphicon-arrow-down" id="orderByPublicDesc"></span></a></th> 

任何方式Ajax来做到这一点比制作​​6个div更容易隐藏/显示它?

非常感谢!

+0

做所有这些返回的数据相同,只是下令不同?那么你的页面一遍又一遍地请求相同的数据?是的,有一个更简单的方法来做到这一点。请求数据*一次*并根据需要在JavaScript中进行分类。或者你在问别的吗?这不是很清楚。 – David

+0

其中一个选项是使用Route :: get('project/orderBy/{field_name}/{asc_desc}'并在Request中获得这些参数。这样,​​您只需要一个路由和一个方法。 –

+0

是的,是你可以向我解释如何用JS做这件事吗?非常感谢 –

对于这种情况,你有两个选择:

  • 第一招:使用路径参数

可以将所有路线结合起来,一个下令:

Route::prefix('admin')->group(function() { 

    Route::get('project/order/{field}/{order}', [ 
       'uses' => '[email protected]', 
       'as' => 'admin.projects.order' 
      ]); 

}); 

在您的AdminController

public function order($field, $order) 
{ 
    $projects = DB::table('projects')->orderBy($field,$order)->get(); 
    return view('cms.public.views.projects.menu') 
       ->withProjects($projects); 
} 

在视图:

<a href="{{ route('admin.projects.order', ['field' => 'id', 'order' => 'asc']) }}">Order by ID</a> 
  • 第二个:使用查询字符串

对于路线:

Route::prefix('admin')->group(function() { 

    Route::get('project/order', [ 
       'uses' => '[email protected]', 
       'as' => 'admin.projects.order' 
      ]); 

}); 

在你AdminController

public function order(\Illuminate\Http\Request $request) 
{ 
    $order = $request->query('order'); 
    $field = $request->query('field'); 
    $projects = DB::table('projects')->orderBy($field,$order)->get(); 
    return view('cms.public.views.projects.menu') 
       ->withProjects($projects); 
} 

并在视图:

<a href="{{route('admin.projects.order', ['field' => 'id', 'order' => 'desc'])}}">Order by ID</a> 
+1

它的工作原理!谢谢! –

+0

嗨,朋友,我想我真的需要你的帮助@Maraboc我们可以说吗? –

+0

hi @LluísPuigFerrer,我在这里:)有没有问题? – Maraboc