1

我有一个页面,play.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?

4

4 回答 4

5

$mymp3您在使用$_GET时获取变量<form method='post'..,将其更改为$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>
于 2012-07-24T16:56:43.223 回答
2

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

如果您不使用 PHP 5.4,<?php echo $_GET['mymp3']; ?>推荐使用 PHP 5.4(感谢@Palladium)。

于 2012-07-24T16:57:23.940 回答
0

可能最简单的方法(至少考虑到我们从问题中获得的信息)是摆脱从play.htmlto的重定向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");

但是随后您会遇到在没有服务器端处理的情况下从查询字符串中读取它的问题。不过,您也许可以使用 JavaScript 做到这一点。您必须读取值并在元素上设置src属性。audio但是使用服务器端处理可能会容易和更可靠。

于 2012-07-24T17:00:56.637 回答
-1

完整的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> 

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

于 2015-04-29T17:48:50.823 回答