将变量传递到下一页,没有表单或URL扩展名

时间:2017-09-14 04:06:28

标签: javascript php jquery ajax

我有一个链接去exampleA.php,但我想要一个变量传递与链接。当然条件不是使用URL扩展或表单submitting.i搜索周围和大多数人建议ajax,但对我来说,我不只是传递文件的变量我想处理变量当我在exampleA.php页面。 在exampleA.php中我有代码例如

if(isset($_POST['Type'])){ $Type=$_POST['Type']; }

使用Ajax

当我已经到达exampleA.php页面时,我无法处理POST变量。 以防万一我的代码错了。

<a class="example_anchor" href="TestB.php/" data-type="Activity">M</a>
    <script>
        $(".example_anchor").on("click", function (e) {
        e.preventDefault();
        var Type = $(this).data();
        var link = $(this).attr('href');
        $.ajax({
            url: link,
            type: "POST",
            dataType: "text",
            data: { 
                Type:Type
            },
            error: function (msg) {
                alert("Fail");// Error handling
            },
            success: function (msg) {
                // Success handling

                     alert("You will now be redirected.");
                     window.location.replace(link);

            }
        });


        });

    </script>

2 个答案:

答案 0 :(得分:2)

尝试使用session来发送数据,而不使用表单或url或ajax。

这里是怎么做的

  1. 使用第session_start();
  2. 在每个页面上开始会话
  3. 在您要发送数据的第一页上,将其传输到会话变量,例如$_SESSION['transferdata']= "some data"
  4. 在下一页上,请查看

    if(isset($_SESSION['transferdata'])){ // do whatever you want to do }

答案 1 :(得分:2)

就个人而言,在进入下一页之前,我只是set a cookie

$('.example_anchor[data-type]').on('click', function (e) {
  document.cookie = `type=${this.getAttribute('data-type')}` // note, very simplified
  return true
})

然后您的PHP脚本应该能够访问$_COOKIE['type']

如果TestB.php与当前资源不在同一路径中,则可能需要设置cookie path属性。您可能还想设置其他属性,例如expires,但默认值会在会话结束时到期。