• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:一覧から選んだ動画を、順番に連続して表示したい)

一覧から選んだ動画を順番に連続して表示する方法

このQ&Aのポイント
  • PHPを勉強している方が一覧から選んだ動画を順番に連続して表示したい場合、チェックボックスの代わりにテキストボックスで番号を入れてもらい、その番号順に再生する方法が考えられます。
  • 動画の下にチェックボックスをつけ、チェックしたもののリンクが配列を使ってm3uファイルに書き込まれて連続再生されるプログラムは作成できましたが、順番通りに再生することができませんでした。
  • テキストボックスに入力された番号を処理する方法や、番号順に再生する方法について分からない点があります。どのようにプログラムを組めば選んだ順番で再生することができるでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • _chihiro_
  • ベストアンサー率63% (26/41)
回答No.2

やり方は色々あると思いますが、 例えばすごく単純ですが、ファイルのURLが書かれたvalue値を<input type="text">タグのname属性にするとか 例)<input type="text" name="http://URL/TO/file.path"> などでできると思います。 ただし、この場合受け取り(PHP)側で $_POST["http://URL/TO/file.path"] みたいになってしまうので できればname属性は連続したキーを持つ配列で指定した方が分かりやすいです。 例) <input type="text" name="file[FILENAME1]"> <input type="text" name="file[FILENAME2]"> <input type="text" name="file[FILENAME3]"> のようにすれば受け取り(PHP)側は $file_array = $_POST["file"]; で配列$file_arrayにFILENAMEをキーにした値が取得できるので、質問者さんの考えていることが出来ると思います。 ※未確認なので、間違っていたらゴメンなさい。

noname#93286
質問者

お礼

できました(^o^)丿 ありがとうございました! さらに、asort と array_keys 使ってできました。 アドバイスいただき、大変助かりました☆

その他の回答 (1)

  • _chihiro_
  • ベストアンサー率63% (26/41)
回答No.1

基本的に、ユーザーにチェックボックスにチェックを入れた順番をサーバーへ送ることは不可能です。 サーバー(PHP)は、ユーザーがチェックを入れた順番を知りえません。 もし実装するのであれば、 1)質問者さんが考えているようにテキストボックスに再生させる順番を数字で入れさせてsubmitするか、 2)もしくはjavascriptでユーザーがチェックを入れる度にチェックを入れた時間を追加するかでしょう。 サーバー側では 1)POST(またはGET)された再生させる順番で、 2)POST(またはGET)された時間で、 連続再生させる配列(←何が格納されているのかは分かりませんが^^;)をソート!でいけると思います。

noname#93286
質問者

補足

ご回答、ありがとうございますm(__)m もう少しお聞きしたいのですが、そのテキストボックスの場合を詳しく教えてください。 私は今まで、チェックボックスのときは、 <form method="POST" action="newfile.php"> //newfile.phpにて、新規のm3uファイルを作成しています。 <input type="checkbox" name="movie[0]" value="http://.../movie/Nepal.mpg" /> として、valueで直接リンク先のテキストを送っていました。 しかし、テキストボックスで番号を送信する場合、 <input type="text" name="name1" /> などとして、まずその入力された番号を送信しますよね? その際、先ほどのvalueのリンク先はどこで関連付ければよいのでしょうか? 送られた先、newfile.phpにて、指定するようになるのでしょうか。 よろしくお願いしますっ!