在我的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变量的正确语法是什么?感谢。
答案 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都会看到相同的东西。它负责引用,转义,甚至迭代数组和对象。