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

时间:2013-09-17 08:31:15

标签: javascript php jquery

在我的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变量的正确语法是什么?感谢。

6 个答案:

答案 0 :(得分:1)

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

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

if ($opz = 1){

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

  header("Location:".$url);
}

答案 1 :(得分:1)

你的问题很简单:

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

应替换为

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

答案 2 :(得分:1)

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

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

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

答案 3 :(得分:0)

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

答案 4 :(得分: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

答案 5 :(得分:0)

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

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

如您所见,您缺少引号。

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