Laravel after ajax sucesss calling another controller with data
目前我可以通过 ajax 将表单数据传递给我的控制器以插入到数据库中。这工作正常,插入后我将从控制器获取数据并仅在此 ajax 成功后传递给另一个控制器。目前卡在这里,因为我正在使用这个方法 window.location.href.
1 2 3 4 5 6 7
| $.ajax({
method:"POST",
url:"{{ URL::asset('paysubmit') }}",
data: {eID:eID,amount:amount,"_token":"{{ csrf_token() }}" },
success: function(data) {
window.location.href="{{ URL::asset('/cds') }}";
} |
目前在支付提交控制器中,我正在使用此方法返回 view('cds')->with($data);,但我需要在此 ajax 中执行此操作,因为此代码在 php 中?我需要即兴创作这个 window.location.href="{{ URL::asset('/cds') }}";?
- 将 {{ URL::asset('/cds') }} 更改为 {{ url('cds') }}
-
您想在 ajax 成功时将数据传递给其他控制器的其他方法。对?
-
我想传递数据视图(\\'cds\\')->with($data);
-
@Rahul是的,你是对的,我想在ajax成功时将数据传递给其他控制器的其他方法。
您可以使用以下两种方法中的任何一种来解决您的问题:
-
Make another call inside your ajax success function and pass the data received from your first call to second call.
-
In your first controller method after you get the data, call second controller method and then return the result.
您要实现的目标是不合法的,因为您将视图返回到基本上是 html 的 ajax 成功,一旦您重定向到另一个 url,您将丢失数据。
-
您可以继续使用上述任何一种方式
-
我认为,第二个是更可行的解决方案。
-
取决于你想对你的数据做什么
-
@rahul这是如何详细工作的在您获取数据后的第一个控制器方法中,调用第二个控制器方法然后返回结果。?目前在我的控制器中,我有这个 return view('cds')->with($data);但它不会去控制器或者它继续返回到第一个调用 ajax 函数?
-
而不是返回视图调用其他控制器并在方法中传递数据
-
@rahul 如何调用另一个控制器并传递数据而不是查看语法是什么?
-
请参阅stackoverflow.com/questions/30365169/...
-
@rahul 我试过这个 return Redirect::route('cdscontroller/78');它也不起作用
-
您到底想做什么,为什么要重定向
-
@rahul我想重定向到该路线本身,因为我已经定义了这条路线 Route::get('cdscontroller/{ID}', 'CdsController@index');我收到错误 Route [cdscontroller] not defined
-
尝试 return redirect()->route('route.name', [$param]);
-
@rahul 一样
-
那么问题是你有一个ajax调用所以你返回的任何东西都会被传递给ajax成功,所以我认为你需要尝试方法1
-
您是否仅从第一种方法返回 id 为 78
-
@rahul 是的,我从我的第一种方法返回 78,你是对的
-
然后在您的 ajax 中写入 window.location.href = '/cdscontroller'+data ,其中数据来自成功(数据)
您可以在第一个 ajax 请求的 success 回调中编写另一个调用。并在第二次 ajax 调用中使用从第一次调用中收到的 data。
1 2 3 4 5 6 7 8 9 10 11 12
| $.ajax({
method:"POST",
url:"{{ '/home/view' }}",
data: { eID:eID},
success: function(data){
if (data){
$.ajax({
method="POST",
//other ajax settings here.
})
}
}); |
- 我不想要另一个 ajax,因为一旦它的 ajax 然后它一直在后面等待?