2013-04-02 68 views
-1

我想编写检查少量条件然后在加载的页面上触发JavaScript的PHP代码。使用Javascript的PHP变量

PHP文件是:

$jwplayer= "<script>jwplayer('video1').setup({playlist:$file});</script>"; 
$url2= "http://$_SERVER[HTTP_HOST]/index.php"; 
$url3= "http://$_SERVER[HTTP_HOST]/index3.php"; 
$url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; 
if($url2==$url) { 
    $file= "/media/video.xml"; 
    echo $jwplayer; 
} 
if($url3==$url) { 
    $file= "/media/video2.xml"; 
    echo $jwplayer; 
} 

我使用PHP包括包括上面的代码。

如果页面的URL等于上面$url2的值,那么我想要更新播放列表。这可以通过将$file设置为“/media/video.xml”并执行我试图包含的所需JavaScript来完成。

+1

你的问题对我没有意义。 “我想要$文件会改变它”播放列表:“JavaScript代码”是什么意思? – kba

+0

此代码将导致致命错误。真正的代码是什么,你想要做什么? – jeroen

+0

视频1周围的双引号不应该是单引号 - 'jwplayer('video1')' –

回答

1

试试这个:

$file= "/media/default.xml"; 

$url = "http://" . $_SERVER[HTTP_HOST] . $_SERVER[REQUEST_URI]; 
$url2= "http://$_SERVER[HTTP_HOST]/index.php"; 

if($url2==$url) { 
    $file= "/media/video.xml"; 
} 

$jwplayer= "<script>jwplayer(\"video1\").setup({playlist:".$file."});</script>"; 
echo $jwplayer; 
+1

你是否错过了在视频1周围摆脱双重配额? – 2013-04-02 20:11:27

+0

我在控制台出现错误:$文件未定义 – Ben

+0

如果您遇到该错误,则可能是嵌套变量无法正常工作。我更新了我的代码。 – ktamlyn

0

也许这样

$file = "somefile.xml"; 
$url2= "http://$_SERVER[HTTP_HOST]/index.php"; 
$url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; 
if($url2==$url) 
    $file= "/media/video.xml"; 
$jwplayer= "<script>jwplayer(\"video1\").setup({playlist:$file});</script>"; 
echo $jwplayer; 
1

我就开始修理你的语法错误,并从那里去:

function jwPlayer($xml) { 
    echo("<script>jwplayer('video1').setup({playlist:'$xml'});</script>"); 
} 
$url2= "http://" . $_SERVER["HTTP_HOST"] . "/index.php"; 
$url = "http://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"]; 
if($url2 == $url) { 
    $file= "/media/video.xml"; 
    jwPlayer($file); 
} else { 
    jwPlayer("path/to/other/file.xml"); 
} 

使用后定义一个变量什么都不会做,但会导致你的问题。

+0

我想要$ jwplayer会不断变化,只是$文件的变化,根据条件 – Ben

+0

@ user1389940看看我更新的答案;把输出放到一个'function'中,然后按你的喜好调用它。 – faino

+0

这正是我想要的。谢谢!!! – Ben

0

试试这个..

$url2= "http://$_SERVER[HTTP_HOST]/index.php"; 
$url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; 

if($url2==$url) { 
    $file= "/media/video.xml"; 
    echo $jwplayer= "<script>jwplayer("video1").setup({playlist:$file});</script>"; 
} 

在你的代码,它看起来像你试图通过echo'ing脚本得到$文件的价值..

希望帮助

+0

我想变量jwplayer($ jwplayer)将是常量。根据条件,只要$文件就会改变......我有我的第一篇文章。 – Ben

0

有这是这段代码中的一些错误。

在分配此字符串时,变量$file未定义,您必须先定义它。

$jwplayer= "<script>jwplayer('video1').setup({playlist:$file});</script>" 

在JavaScript对象字面上,您必须引用一个字符串。如果您没有将变量$file的内容变成未定义的JavaScript变量。

{playlist:"$file"} //playlist is a string 

试试这个

$url2 = "http://$_SERVER[HTTP_HOST]/index.php"; 
$url = "http://" . $_SERVER[HTTP_HOST] . $_SERVER[REQUEST_URI]; 
if($url2==$url) { 
    $file= "/media/video.xml"; 
    $jwplayer= "<script>jwplayer('video1').setup({playlist:'$file'});</script>"; 
    echo $jwplayer; 
} 

我不知道你所说的“常数”的意思,但我会做这样的事情,但我不能肯定地告诉如果这个工程只是在实际问题中提供的信息很少。

<?php 
    $url2 = "http://$_SERVER[HTTP_HOST]/index.php"; 
    $url = "http://" . $_SERVER[HTTP_HOST] . $_SERVER[REQUEST_URI]; 
    $file = ""; 
    if($url2==$url) { 
     $file = "/media/video.xml"; 
    } 
?> 

<script> 
jwplayer('video1').setup({playlist:'<?=$file>'}); 
</script>