2017-09-22 6 views
0

おはようへのPHPのセッションの多次元配列にいくつかのアドバイスを必要とする私はちょうど私も論理的に従うことができない問題の中に立ち往生しています。たぶんあなたは私を正しい道に導くことによって私を助けることができます。は、</p> <p>をJavascriptの

私はidを渡す簡単な機能を開始する簡単なボタンを持っています。今、私は、異なるID

<a class="buttonControl btn btn-default btn-xs" href="javascript:play(999)" id="999">Play</a> <br> <a class="buttonControl btn btn-default btn-xs" href="javascript:play(888)" id="888">Play</a>

次の事は、私はPHPのセッションのうち、PHPの多次元配列を持っているとの行に複数のボタンを持っています。

$arr_a = array(
    "999" => array(
     "start" => "180",  
     "files" => array(
      "mp3" => "http://example.com/999.mp3"   
     ) 
    ) 
    "888" => array(
     "start" => "120",  
     "files" => array(
      "mp3" => "http://example.com/888.mp3"   
     ) 
    ) 
) 

JS関数play(id)は、html5オーディオオブジェクトを介してオーディオファイルの再生を開始します。私は次のように記述する際に

function play(x) { 
    ...some code... get audio object ... 
} 

だから私は、右の午前:

  • はjson_encodeの[とPHPの配列を変換しますか? ]
  • JSON出力をjs関数[? ]
  • idがキー[?]と一致するまでjsonデータを反復処理します。 ]
  • 'mp3'の値を取得し、それをsrcオーディオオブジェクト[? ]
  • ファイル

を果たしだから、これはあなたの視点から、正しい方法ですか?

ありがとうございました!

よろしく Aaren

答えて

1

使用JSONはJavaScriptにPHPからコンテキストを変更します。他のステップは大丈夫です。しかし、どこで苦労していますか?あなたのリストを変更することができた場合

function play(x) { 
    let jsonData = <?=json_encode($arr_a);?>; 
    let mp3 = jsonData[x].files.mp3; 
    document.querySelector('audio').src = mp3; 
    document.querySelector('audio').play(); 
} 
+1

今考えてみると、すべてを書き直して書き込むことが本当に良かったと思うので、私の闘争は、私が何とかして不確かな(コーヒーの不足かもしれない)ためだと思う...それを書いて考えるそれを書いている間に、私の思考についてあなたの再確認が今まで私を助けました!ありがとうございました! –

+0

ようこそ。ご不明な点がございましたら、お気軽にお問い合わせください。これがあなたの質問に対する答えであれば、あなたの好みの答えとして選択してください:) –

+1

あなたのことですか?しかし、時間制限のために8分間待たなければなりません。ありがとうございました!今私はコーヒーを楽しむことができます:) –

0

は、あなたはJSONとしてリストを返すために(例えば、audio_list.php)PHPスクリプトを使用して、更新されたリストを取得するにはAJAX呼び出しを使用することができます。

+0

ありがとう。今すぐリストはPHPセッションから来るので、私はそれをjsonに簡単に変換できます。だからジョシュアの試みは私をさらに助けました。 –

関連する問題