2017-02-28 75 views
1

我已阅读以下文章,但他们对我来说有点超过顶端。我想我正在尝试做一些相当简单的事情,并希望得到一些指导。PHP Pass Variable to new Window.Open Javascript

How to pass variables and data from PHP to JavaScript?

passing PHP variables across javascript windows.open to another PHP page

Posting a php variable to a new window

这里的情况:

我有一个PHP脚本,这是非常简单,它调用另一个脚本,并传递两个变量:

<?php 
echo '<script type="text/javascript" language="javascript"> 
window.open("http://callpage.com/utils/cdr.php?callernum=123456789&calltime=2017-02-22 16:24:12"); 
</script>'; 
?> 

注意:这只是一个“硬编码”示例。

下一个脚本需要这些数字并构建文件/ url变量。

比方说

$file = /var/www/html/file.wav 

我试图做打开一个新窗口的作用:

http://newpage.com/$file 

我已阅读并发现,我认为最好是使用JAVASCRIPT,但我似乎无法让我的变量进入Javascript。

这是我希望得到的工作:

<?php 
$file = /var/www/html/file.wav 
echo '<script type="text/javascript" language="javascript"> 
window.open("http://newpage.com/$file"); 
</script>'; 
?> 

的几个注意事项:

  • 我不想“重定向”旧页,我希望它继续开放,并且远程页面不在同一域 (一个是a.domain.com,另一个是b.domain.com)。
  • 我不关心窗口大小等,它是一个wav文件,我期待浏览器只需使用Wav的简单浏览器默认界面即可播放。

  • 我对PHP和Javascript都很新,所以对我一无所知,但我有一个很好的学习曲线。它只是我阅读的网页对于我想要完成的内容过于复杂。

回答

1

使用字符串插值与echo语句双引号和单引号无处不在JavaScript的内部:

echo "<script type='text/javascript' language='javascript'> 
window.open('http://newpage.com/$file'); 
</script>"; 

插值PHP变量$文件应该被正确地解释为一个字符串,并将其持有的价值应该被显示在您的JavaScript的URI。 看看这个很容易理解有关变量替换信息http://phppot.com/php/variable-interpolation-in-php/

+0

我喜欢这种方法,因为双引号照顾添加的所有变量,VS其他答案似乎很容易出错,但都工作!所以对于两者都是+1。 – FreeSoftwareServers

+0

如果您认为这是有据可查的,并且虽然重复,值得“重新询问”,但我认为无法提出任何其他问题的风险。 – FreeSoftwareServers

2

如果我理解正确的,你想要什么,你必须连接具有可变的字符串才能被replaceed

<?php 
$file = '/var/www/html/file.wav'; 
echo '<script type="text/javascript" language="javascript"> 
      window.open("http://newpage.com/'.$file.'"); 
     </script>'; 
?> 
0

这里是我的“最后”的代码片段:

$query->execute(); 

while ($row = $query->fetch(PDO::FETCH_ASSOC)) 
{ 
    $uid = $row['uniqueid']; 

    foreach(glob($path. "*". $uid. "*") as $file) { 
    $link = "http://newpage.com$file"; 

    echo "<script type='text/javascript' language='javascript'> 
    window.open('$link'); 
    </script>"; 

    } 
}