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'] ?>。では、 POST 経由でplay.php渡しているため、代わりに.mp3name$_POST$_GET

また、PHP 5.4 を使用していない場合は<?php echo $_GET['mymp3']; ?>、この方法をお勧めします (@Palladium に感謝)。

于 2012-07-24T16:57:23.940 に答える
0

おそらく最も簡単な方法は (少なくとも質問から得た情報を考えると) からのリダイレクトを取り除きplay.htmlplayer.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 に答える