2012-04-18 121 views
-1

我有一个帮助函数下面的代码,其中我尝试在事件发生后将用户重定向到链接。JavaScript代码中的PHP变量

static public function redirect($path) 
{  
    echo '<script type="text/javascript">'; 
    echo 'self.parent.location.href = "$path";'; 
    echo '</script>';   
} 

在我来说,我所说的功能Helper_Popup::redirect("/account/my_addresses")但是,当然,它重定向我一个链接something/$path。我应该如何在上面的代码中嵌入php变量?

+0

也许作为'echo“self.parent.location.href ='/ $ path';”;(注意引导斜杠和引号反转)?那是你的追求? – DaveRandom 2012-04-18 12:04:15

+1

http://stackoverflow.com/questions/3446216/difference-between-single-quote-and-double-quote-string-in-php – thwd 2012-04-18 12:04:38

+0

这是不可能的JavaScript代码中的PHP变量。 这是2种不同的语言,无法访问其他变量。 – 2012-04-18 13:21:02

回答

0
echo "self.parent.location.href = '$path';"; 
2

你必须用单引号您$path变量包裹所以变量被字面理解为'$path'而不是变量,这是在双人和单引号之间的PHP差的实际值,试试这个:

static public function redirect($path) 
{  
    echo '<script type="text/javascript">'; 
    echo 'self.parent.location.href = "'.$path.'";'; 
    echo '</script>';   
} 
1
echo 'self.parent.location.href = "'. $path .'";'; 
+1

很多答案 - 几乎都是一样的 - 很快,我从来没有足够快的SO – TerryProbert 2012-04-18 12:06:14

+1

非常罕见,我同时正确和足够快! – martincarlin87 2012-04-18 12:07:00

-1

添加<?php ?>标签和echo可变

实施例

<script src='<?php echo $var; ?>' </script> 
+0

如果在php.ini中启用了“shoprt_open_tag”选项,那么您也可以使用“”作为输出 – alphanyx 2012-07-04 16:03:22

2

该行不正确。如果你想在JavaScript中使用PHP,你必须做,所以

echo 'self.parent.location.href = "' . $path . '";'; 

或者如果使用单引号PHP将不会被执行,你可以使用双引号这样

echo "self.parent.location.href = '$path';"; 

。但使用双引号,php将解析php代码(如果可用),单引号将以纯文本形式显示回显:“$ path”

+0

我个人比较喜欢第一个示例。在第二个示例中,编辑器很有可能不会突出显示$ path变量。 – 2012-04-18 12:14:11

+0

OMG“php将被执行” – 2012-04-18 13:20:31

+0

@你的常识:错误的描述你是对的。我已经纠正它 – alphanyx 2012-04-18 13:35:02

0

试试。

echo 'self.parent.location.href = "'. $path .'";';