ajax成功后用数据调用另一个控制器后的Laravel
Posted
技术标签:
【中文标题】ajax成功后用数据调用另一个控制器后的Laravel【英文标题】:Laravel after ajax sucesss calling another controller with data 【发布时间】:2017-11-16 08:20:58 【问题描述】:目前我可以通过 ajax 将表单数据传递给我的控制器以插入到数据库中。这工作正常,插入后我将从控制器获取数据并仅在此 ajax 成功后传递给另一个控制器。目前卡在这里,因为我正在使用这个方法 window.location.href。
$.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 成功时将数据传递给其他控制器的其他方法。对吗?
我要传数据 view('cds')->with($data);
@Rahul 是的,你是对的,我想在 ajax 成功时将数据传递给其他控制器的其他方法。
【参考方案1】:
您可以在第一个 ajax 请求的 success
回调中编写另一个调用。并在第二次 ajax 调用中使用从第一次调用中收到的 data
。
$.ajax(
method: "POST",
url: " '/home/view' ",
data: eID:eID,
success: function(data)
if (data)
$.ajax(
method="POST",
//other ajax settings here.
)
);
【讨论】:
我不想要另一个 ajax,因为一旦它的 ajax 就一直在后面等待?【参考方案2】:您可以使用以下两种方法中的任何一种来解决您的问题:
在您的 ajax 成功函数中再次调用,并将第一次调用收到的数据传递给第二次调用。
在你的第一个控制器方法中,获取数据后,调用第二个控制器方法,然后返回结果。
您试图实现的目标是不合法的,因为您正在返回一个基本是 html 的 ajax 成功视图,一旦您重定向到另一个 url,您将丢失数据。
【讨论】:
您可以通过上述任何一种方式进行 我认为,第二个是更可行的解决方案。 取决于您要如何处理数据 @rahul 这是如何工作的详细信息在您的第一个控制器方法中,您获取数据后,调用第二个控制器方法,然后返回结果。?目前在我的控制器中,我有这个 return view('cds')->with($data);但它不会去控制器,也不会继续返回第一个调用 ajax 函数? 而不是返回视图调用其他控制器并在方法中传递数据以上是关于ajax成功后用数据调用另一个控制器后的Laravel的主要内容,如果未能解决你的问题,请参考以下文章