2017-01-02 131 views
0

我如何不能重定向o在ajax请求后返回视图。在ajax请求后返回视图或重定向

我尝试验证请求和之后(如果请求是好的)返回一个视图,但这个不工作,我尝试重定向到新的路线,但不工作太。

这是我的控制器:

public function searchActivity(Request $request){ 

    $validator = Validator::make($request->all(), [ 
     'search' => 'required', 
     'date' => 'required_with:search|required|date|date_format:d-m-y|after:yesterday' 
    ]); 

    if ($validator->fails()){ 

     return response()->json([ 
      'sucess' => false, 
      'errors' => $validator->errors()->toArray(), 
      'data' => $request->all() 
     ]); 
    }else{ 

$queries = DB::table('activities')->where('name', $request->search)->orWhere('City', $request->search)->paginate(1); 

     return redirect()->route('ActivitiesResults', ['results' => $queries]); 
    } 

JS代码:

function selectDate(){ 
    $(document).ready(function() { 
     $("#datepicker").datepicker({ dateFormat: 'dd-mm-yy' }); 
    }); 
} 

function searchActivity(event) { 
    event.preventDefault(); 

    console.log(event); 
    $.ajax({ 
     type: 'POST', 
     url: searchRoute, 
     data: { 
      search: $('.search').val(), 
      date: $('#datepicker').val(), 
      _token: $('#token').val() 
     }, 

     dataType : "json", 

     success: function (data) { 
      if (data.success){ 

       console.log(data) 

      }else{ 
       console.log(data.errors); 

      } 
     } 
    }) 
} 

感谢您的帮助!

+0

我觉得你的Ajax代码是因为你在PHP重定向,但你正在使用AJAX,所以我可能在你的JS上尝试使用'window.open(“URL”,“_ self”);''是个好主意。 –

回答

0

使用header("url)window.location.href="url"在你的成功funciton。

+0

你能告诉我怎么样吗? –

2

你需要改变你的PHP代码

if ($validator->fails()){ 

    return response()->json([ 
     'sucess' => false, 
     'errors' => $validator->errors()->toArray(), 
     'data' => $request->all() 
    ]); 
}else{ 
    return response()->json([ 
     'sucess' => true, 
     'what_you_want' => '' 
    ]); } 

改变这样

success: function (data) { 
     if (data.success){ 

      //console.log(data) 
     window.location.replace("http://stackoverflow.com"); 

     }else{ 
      console.log(data.errors); 
      window.location.replace("http://google.com"); 
     } 
    } 
+0

如果我想在另一个视图中显示$ request的值,因为我应该在php代码中放入另一个视图中? –

+0

编辑你的问题你想要什么..? –

+0

我想返回一个新的视图随着搜索的结果。我已经编辑了代码。 –