在我的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都会看到同样的东西。它负责引用、转义,甚至迭代数组和对象。