2012-07-24 80 views
0

我有一个页面,play.html传递变量到HTML

<form method="post" action="play.php"> 
     <input type="hidden" name="mp3name" value="/MP3/1.mp3"> 
     <input type="submit" value="Play My MP# #1" /> 
    </form> 


<form method="post" action="play.php"> 
    <input type="hidden" name="mp3name" value="/MP3/2.mp3"> 
    <input type="submit" value="Play My MP# #2" /> 
</form> 

这就需要另外一个页面,play.php

<?php 

$formurl = "play.html" ; 
$playerurl = "player.html" ; 

$mymp3 = $_GET["mp3name"]; 

header("Location: $playerurl?mp3name=$mymp3"); 
exit ; 
?> 

然后调用另一个页面,player.html

<audio id="player" src="$mymp3" autoplay preload="auto"> </audio> 
     <div> 
     <button onclick="document.getElementById('player').play()">Play</button> 
     <button onclick="document.getElementById('player').pause()">Pause</button> 
     <button onclick="document.getElementById('player').volume+=0.1">Volume Up</button> 
     <button onclick="document.getElementById('player').volume-=0.1">Volume Down</button> 
      </div> 

如何将PHP中的变量传递给player.html

+0

您正在使用header Location命令从php页面重定向。并且你正在querystring中传递mp3name变量,试着用'$ mymp3 = $ _GET [“mp3name”];'在player.php(必须是一个php页面)中实例化你的变量。当然,不要忘记用封装$ mymp3(你必须在页面中打印这个变量) – 2012-07-24 16:58:34

回答

3

您在使用<form method='post'..时将变量$mymp3替换为$_GET,将其更改为$mymp3 = $_POST['mp3name'];

然后,将您的player.html扩展名更改为player.php以使用PHP代码。

所以,当你有你的player.php文件,改变了...

<audio id="player" src="$mymp3" autoplay preload="auto"> </audio> 

这个...

<audio id="player" src="<?php echo $mymp3 ?>" autoplay preload="auto"> </audio> 
2

你不能,如果它只是一个普通的HTML文件。将其更改为PHP文件并使用<?= $_GET['mymp3'] ?>。在play.php中,由于您通过POST传递mp3name,因此您还需要$_POST而不是$_GET

如果你不使用PHP 5.4,<?php echo $_GET['mymp3']; ?>将是推荐的方法(谢谢@Palladium)。

+0

'echo',我的好人! 'echo'! – Palladium 2012-07-24 16:59:20

+0

@钯:PHP 5.4 FTW! – Ryan 2012-07-24 17:00:25

+0

即使他需要更改src – 2012-07-24 17:01:11

0

也许最简单的方法(至少给我们从问题有资料),将会得到来自play.html摆脱重定向到player.html和前发出的,而不是球员的拥有它是一个静态的HTML页面。所以play.html会是这个样子:

$formurl = "play.html" ; 
$playerurl = "player.html"; 

$mymp3 = $_GET["mp3name"]; 
<audio id="player" src="<?php echo $mymp3; ?>" autoplay preload="auto"></audio> 
<div> 
    <button onclick="document.getElementById('player').play()">Play</button> 
    <button onclick="document.getElementById('player').pause()">Pause</button> 
    <button onclick="document.getElementById('player').volume+=0.1">Volume Up</button> 
    <button onclick="document.getElementById('player').volume-=0.1">Volume Down</button> 
</div> 

还是有特别的原因,这需要通过重定向发生?如果它必须是一个重定向,那么它是一个HTML页面的事实限制了你的选择,因为它不会有服务器端处理。您可以传递值一起在查询字符串,你已经尝试:

header("Location: $playerurl?mp3name=$mymp3"); 

但你碰上从查询字符串读它没有服务器端处理的问题。不过,您可能可以使用do this with JavaScript。您必须读取该值并在audio元素上设置src属性。但它可能会更容易和更可靠地与服务器端处理做到这一点。

0

完整的html代码,表单,整个页面都可以放在第一个PHP本身。复制第二个HTML中的所有内容并将其放在原始PHP文件本身的底部。删除重定向命令头(“Location:$ playerurl?mp3name = $ mymp3”);从你的PHP。而是使用您的代码编写完整的html文件

<audio id="player" src="$mymp3" autoplay preload="auto"> </audio> 
<div> 
<button onclick="document.getElementById('player').play()">Play</button> 
<button onclick="document.getElementById('player').pause()">Pause</button><button onclick="document.getElementById('player').volume+=0.1">Volume Up</button><button onclick="document.getElementById('player').volume-=0.1">Volume Down</button> 
</div> 

并将它们放在?>之下。 保存整个文件(你的PHP的底部完整的HTML)作为一个扩展名为.php的文件。 现在,您的HTML代码已经在PHP部分中定义了自己的变量$ mymp3,并且其值将用于该文件中的所有HTML和其他PHP代码。你可以在同一个文件中添加几个php和html部分)。使用扩展名.php将整个文件保存为一个名称。 你不需要另外一个单独的html文档。在PHP中,您可以混合使用PHP代码和HTML页面。