关于php:ajax成功后用数据调用另一个控制器的Laravel | 珊瑚贝

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 然后它一直在后面等待?


来源:https://www.codenong.com/44540402/

微信公众号
手机浏览(小程序)

Warning: get_headers(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(): Failed to enable crypto in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(https://static.shanhubei.com/qrcode/qrcode_viewid_9719.jpg): failed to open stream: operation failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57
0
分享到:
没有账号? 忘记密码?