通过 js/jquery 重定向 url 函数传递 php 变量


Pass php variable via js/jquery redirect url function

在我的php中,我想通过javascript/jquery通过js函数重定向带有php变量的url。

我的 js 函数

function Redirect(url){
  document.location.href=url;
} 

在我的 php 页面中,我尝试以这种方式进行,但我担心$url中的语法有问题。

if ($opz = 1){
  $url = "index.php?opz=OK#PG2&id=" . $_GET['id'];
  echo "<script>";
  echo "$(function(){ Redirect($url); });";
  echo "</script>";
}

如果我尝试以这种方式重定向,一切正常(没有重定向功能)。

echo "<script>
          document.location.href='index.php?opz=OK#PG2&id=$_GET[id]'
      </script>";

谁能建议我通过 js 重定向函数传递我的 php 变量的正确语法是什么?谢谢。

只需将echo "$(function(){ Redirect($url); });";更改为

echo "$(function(){ Redirect('$url'); });";

请注意引号。URL 将作为字符串传递给重定向函数。因此,请将其括在单引号中。喜欢Redirect('$url');

你的问题很简单:

  echo "$(function(){ Redirect($url); });";

应替换为

  echo "$(function(){ Redirect('$url'); });";

为什么你试图使用javascript重定向你的网页。

你也可以用PHP来做。使用 PHP header() 函数重定向您的页面。

if ($opz = 1){
  $url = "index.php?opz=OK#PG2&id=" . $_GET['id'];
  header("Location:".$url);
}

假设生成的Javascript代码没问题,请尝试window.location

尝试如下

if ($opz = 1){
 $param = 'opz='.urlencode("OK#PG2").'&id='.$_GET['id'];
$url = "index.php?".$param;
echo "<script>";
echo "$(function(){ Redirect($url); });";
echo "</script>";
}

并使用 urldecode() 拾取 opz;

该问题是由您生成的 HTML 如下所示的事实引起的:

Redirect(index.php?opz=.....);

如您所见,您缺少引号。

为了将 PHP 中的变量放入 JavaScript 中,我总是使用 json_encode 。这确保了,无论我传递什么,JavaScript都会看到同样的东西。它负责引用、转义,甚至迭代数组和对象。