javascript - anchor 标记 - 在同一窗口/选项卡中打开新位置,并使用 POST 传递值

标签 javascript php jquery html

相关:

Make a link use POST instead of GET

Making href (anchor tag) request 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 页面。我想使用 anchor 标记和 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 问题,但这不是一个可行的选择。

最佳答案

您可以使用 SessionStorage API 在一个页面上保存一些数据,然后在另一页面上访问该数据,而不是使用 Cookie。看看sessionStorage MDN .

只需在您的 goToOtherPage 回调中保存任何数据,如下所示:

sessionStorage.setItem('formData', {});

稍后,在下一页上,您可以通过以下方式访问上一页上保存的数据:

sessionStorage.getItem('formData');

关于javascript - anchor 标记 - 在同一窗口/选项卡中打开新位置,并使用 POST 传递值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41848356/

相关文章:

javascript - 解构 JSON 对象

javascript - 使用 jQuery,如何将 arg 传递给函数,然后显示来自预定义变量的消息

javascript - 如何在 React 中渲染带有对象数组的组件

javascript - Three.js 粉碎/爆炸平面几何体

javascript - 从构造函数返回什么?

php - 使用php从mysql中获取排序形式的数据

php - Javascript 屏幕宽度/高度到 PHP

javascript - jQuery 点击 div 外面应该隐藏 div,点击的子 div 不应该隐藏

php - 在Elasticsearch中定义搜索规则

php - 如何将 DIV 元素的值提交到基于 PHP 的表单中