【问题标题】:How to make redirection with variable URL如何使用可变 URL 进行重定向
【发布时间】:2019-12-09 21:16:13
【问题描述】:

我的页面上有一个表单,PHP/JS 重定向存在问题。

我有3个条件:

  1. 我不能使用PHP“标题位置”来重定向,因为我需要在表单提交时不刷新页面,所以我定义了按钮type='button',而不是 type='submit'我正在使用AJAX

  2. 我无法在AJAX's "success" 中定义重定向 URL,因为 URL 应该是可变的,具体取决于先前用户的操作。所以我需要在PHP中定义URL。

  3. 我必须在用户点击我页面上的按钮之后定义 URL,而不是之前。

问题是,JS没有看到PHP中定义的URL,所以重定向不起作用(如果我在AJAX's“成功”中定义了URL,那么它就可以正常工作)。

$(document).ready(function () {
    $("#my_button").click(function () {

        $.ajax({
                  type: 'POST',
                  url: 'file.php',
                  data: {check_button: '1', email: 'user@email.com'},
                  success: function(data){
                    //var url = "https://..................";   // THIS WORKS FINE!
                    var url = document.getElementById("my_url").value;    // THIS DOESN'T WORK!
                      window.location.href=url;
                  }
        });
    });
});
// echo "<input type='hidden' id='my_url' value='https://................'/>"; // THIS WORKS FINE!
if (isset($_POST['check_button'])) { 
  echo "<input type='hidden' id='my_url' value='https://................'/>";  // THIS DOESN'T WORK!
  // Do something
}

而且我需要在此语句中准确定义 URL。我该怎么做?

提前感谢您的帮助。

【问题讨论】:

  • 在ajax响应中从PHP返回url的值,然后设置。
  • 也请发布您的 PHP 代码。
  • 是的,我已经做到了,我将 url 传递给隐藏标签中的 js,然后我在 ajax 中设置了它,但这只有在我在用户点击之前传递变量时才有效按钮

标签: javascript php redirect


【解决方案1】:

在 PHP 代码中进行以下更改:

if (isset($_POST['check_button'])) 
{ 
  echo "https://................"; // URL you want
}

然后在 Ajax 代码中进行以下更改:

$.ajax({
type: 'POST',
url: 'file.php',
data: {check_button: '1', email: 'user@email.com'},
success: function(data)
{        
    window.location.href=data;
}
});

【讨论】:

  • 这行得通,谢谢!但是如果我在这个 php 文件中有另一个回显,那么所有这些输出都将被传输到 ajax ......也许还有另一种方式?
  • 如果有多个值,那么您可以将它们放入一个数组中,然后使用 json_encode() 回显它们。
猜你喜欢
  • 2020-02-14
  • 2016-05-30
  • 2015-08-15
  • 1970-01-01
  • 2018-09-05
  • 2011-08-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多