2012-07-24 72 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頁面。