我的项目中有一个视图,它有几个步骤。通过按钮单击处理这些步骤,使用户进入下一步,同时使用JS和AJAX存储数据。在最后一次单击时,我希望用户从复选框选择列表中进行选择,并且我想存储并使用此数据来影响下一个视图(最后一个按钮单击应该重定向到另一个视图)。
我可以使用ajax存储数据,但我似乎无法弄清楚如何将数据发送到下一个视图。
基本上,我想收集点击的数据,用ajax将其发送回我的控制器,存储它,然后在超链接(使用路由)中使用它来实现下一个视图(使用SESSION数据):
<a href="/fans/welcome_reroute/{some id}"><input id="btn-next" type="button" name="next" class="next action-button faded" value="Next" /></a>
我希望这很清楚。关于如何做到这一点的任何想法?
编辑:
好的,基本上,它的工作原理如下:
第1步:
系列复选框(最多选择3个):
[] [] [] [] []
“下一个按钮”将您带到第2步(使用js,视图相同)
第2步:
系列复选框(从之前传递)(选择1):
[id1] [id2]
“下一个按钮”将您带到另一个视图
在新视图中:
可能会说“你选择了id2!真棒!”
当用户单击其中一个框,然后单击下一个按钮时,我希望选中该框中的ID信息,返回我的控制器,存储在我的数据库中(我已经这样做了),但是另外,我想将此信息传递到下一个视图,以便它使用会话数据影响视图(使用Laravel中的Session :: get)。
我的主要问题是,如何将这些数据传回视图,同时使用ajax和我的控制器存储它。我认为这需要使用获取id信息的路由来完成,但是如何将该id信息传递给按钮超链接,如上所示?
编辑2:
function loadStep3() {
var data = $('#onBoarding-hidden #step2').val();
if(data) {
var result = jQuery.parseJSON(data);
if(result[0]) {
result = jQuery.parseJSON(result[0]);
if(result.name) {
$('#step3 .name').html(result.name);
}
}
}
答案 0 :(得分:0)
如果我理解正确,你想要存储下一个请求。为此,您可以使用Session::flash('key','val')
将一些数据放入会话中。
此数据仅在一个请求中保留在会话中。参考 -
答案 1 :(得分:0)
基本上您只需要将数据放到session
,然后您可以访问下一个请求,在这种情况下,您可以flash
将数据session
发送给Session::flash('identifier', 'value');
它返回下一个请求。所以你可以试试这个:
Session::get('identifier');
然后在重定向后的下一个请求中;您可以使用此访问该数据;
Session::flash('myId', Input::get('fieldname'));
所以它可能是这样的:
view
然后在@if(Sessuin::has('myId'))
<a href="/fans/welcome_reroute/{{ Session::get('myId') }}"><input id="btn-next" type="button" name="next" class="next action-button faded" value="Next" /></a>
@endif
的下一个请求中,使用以下命令从会话中获取
Session
有关if(result.name) {
window.location.href = 'url?name='+result.name;
}
的更多信息,请在Laravel website上查看。
更新:根据您的评论,我认为您可以这样做:
$name = Input::get('name');
然后在下一个请求(重定向的位置)上,从查询字符串中访问该名称:
$name
现在您可以根据需要使用{{1}}。