相关:
使用POST而不是GET 创建链接
是否使href(锚标记)请求POST而不是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()
}
}
在函数中添加window.location.href = 'details.php'
,在传递userID后立即打开新页面,但没有我想要传递的参数。
我考虑过设置和取消设置cookie,并绕过整个POST/GET问题,但这不是一个可行的选择。
您可以使用SessionStorage API在一个页面上保存一些数据,并在另一个页面访问这些数据,而不是使用cookie。查看sessionStorage MDN。
只需在goToOtherPage
回调中保存任何数据即可:
sessionStorage.setItem('formData', {});
稍后,在下一页上,您可以通过以下方式访问上一页上保存的数据:
sessionStorage.getItem('formData');