相关:
Make a link use POST instead of GET
如何制作它,以便当用户点击链接时,他被重定向到新页面,以及上一页上的输入?我必须使用POST请求,并且我不想使用任何隐藏的表单(或任何其他形式),如链接(以及许多其他SO)答案中所建议的那样。这甚至可行吗?
我目前的设置(我不允许改变很多)如下:
<form role="form" id="myForm" method="post" action="stuff.php">
<div class="form-body form-body-dark">
<div class="form-actions">
<div class="row">
<!-- various inputs go here -->
<input type="text" name="userID">
</div>
<div class="row">
<div class="col-md-6 col-xs-6">
<button type="submit" id="doStuff" class="btn btn-primary btn-lg btn-block"><i class="fa fa-check"></i> Submit</button>
</div>
<div class="col-md-6 col-xs-6">
<a href="index.php" id="cancel" class="btn btn-danger btn-lg btn-block"><i class="fa fa-refresh"></i> Cancel
</a>
</div>
</div>
</div>
</div>
</form>
现在,我需要添加另一种方式来提交相同输入的一部分,但是需要另一种方式来提交另一个php页面。我想用锚标签和POST请求来做这件事。应该在第一个按钮(提交)之前插入的代码块,但形式相同:
HTML
<div class="col-md-4 col-xs-4">
<a onclick="goToOtherPage()" id="details" class="btn btn-success btn-lg btn-block">
<i class="fa fa-table"></i> Details
</a>
</div>
的jQuery
function goToOtherPage() {
var otherPage = "details.php";
$.post(otherPage, {
'userID': $('#userID').val()
}
}
在传递userID之后,在函数内添加window.location.href = 'details.php'
,打开新页面,但没有我要传递的参数。
我考虑过设置和取消设置Cookie,并绕过整个POST / GET问题,但这不是一个可行的选择。
答案 0 :(得分:1)
您可以使用SessionStorage API在一个页面上保存一些数据,而在另一个页面上访问该数据,而不是使用Cookie。看看sessionStorage MDN。
只需在Observable.zip(
source1,
source2,
optionalSource3.onErrorReturnItem(stub)
)
...
回调中保存所有数据:
goToOtherPage
稍后,在下一页上,您可以通过以下方式访问上一页保存的数据:
sessionStorage.setItem('formData', {});