1

在我的 php 中,我想通过 js 函数通过 javascript/jquery 重定向一个带有 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 Redirect 函数传递我的 php 变量的正确语法是什么?谢谢。

4

6 回答 6

2

你的问题很简单:

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

应该替换为

  echo "$(function(){ Redirect('$url'); });";
于 2013-09-17T08:39:05.840 回答
2

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

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

注意引号。url 将作为字符串传递给 Redirect 函数。所以用单引号括起来。像Redirect('$url');

于 2013-09-17T08:40:32.357 回答
1

为什么您尝试使用 javascript 重定向您的网页。

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

if ($opz = 1){

  $url = "index.php?opz=OK#PG2&id=" . $_GET['id'];

  header("Location:".$url);
}
于 2013-09-17T08:35:12.757 回答
0

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

于 2013-09-17T08:35:22.623 回答
0

尝试如下

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 ;

于 2013-09-17T08:35:28.263 回答
0

问题是由于您生成的 HTML如下所示:

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

如您所见,您缺少引号。

要将 PHP 中的变量放入 JavaScript,我总是使用json_encode. 这确保了无论我传递什么,JavaScript 都会看到相同的内容。它负责引用、转义,甚至遍历数组和对象。

于 2013-09-17T08:38:20.070 回答