如何在打开javascript窗口的href链接中传递php变量

时间:2015-01-04 22:42:37

标签: javascript php

下面的代码可以调用JS window.open

<?
$facebookID = "ID";
$parameters = array(
                'app_id' => 'app_ID',
                'to' => $facebookID,
                'link' => 'link',
                'redirect_uri' => 'my_url'
                );
$url = 'http://www.facebook.com/dialog/send?'.http_build_query($parameters);
echo '<script type="text/javascript">window.open('.json_encode($url).');</script>';
?>

CODE ABOVE WORKS ...它打开一个带有facebook send dailog的窗口

但是如何在链接中实现此功能,只需使用specefic facebook ID点击此窗口即可...

我使用多个faceboook ID构建我的页面,如下所示:

<?
// CODE ABOVE.....
while($row = $stmt->fetch())
{ 
     $facebookID = $row['facebookID'];

     $parameters = array(
                'app_id' => 'app_ID',
                'to' => $facebookID,
                'link' => 'link',
                'redirect_uri' => 'my_url'
                );

     $url = 'http://www.facebook.com/dialog/send?'.http_build_query($parameters);

    ?>

    <a href="#">ON CLICK CALL the JavaScript for this specefic Facebook User</a>
    <? 
    }
    ?>

我的href =&#34; .....&#34; ?我尝试了下面这个,但它没有工作......我猜它是因为窗口内的php变量。开...

<a href="javascript: void(0)" onclick="window.open('.json_encode($url).');" </a>

感谢

2 个答案:

答案 0 :(得分:0)

试试这个:

echo '<a href="#" onclick="window.open(' . json_encode($url) . '); return false;">ON CLICK CALL the JavaScript for this specefic Facebook User</a>';

答案 1 :(得分:0)

你不能在window.open中使用json编码,在你的属性中使用双引号,因为json_encode会为你的代码添加双引号。

enter image description here

(请参阅onclick属性为&#34;格斗&#34;使用window.open中的双引号)

如果你将单引号反转为双引号,它将使用json_encode正常工作。

$url = 'http://test.com';
echo "<a href='javascript: void(0)' onclick='window.open(" . json_encode($url) . ");'>Test</a>";

(因为json编码将添加双引号,并且您的属性具有单引号。)

另一种方法(我推荐) 删除json_encode并在php中放入单引号。

$url = 'http://test.com';
echo '<a href="javascript: void(0)" onclick="window.open(' . '\'' . $url . '\'' . ');">Test</a>';