2017-09-22 36 views
0

早上好一些建议,需要对PHP会话多维数组的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 ... 
} 

所以我是对的,当我描述如下:

  • 转换PHP数组json_encode [? ]
  • 使json函数中的JSON输出可用[? ]
  • 遍历json数据,直到id与key [? ]
  • 获取'mp3'值并将其交给src音频对象[? ]
  • 播放文件

因此,这是从你的观点的正确方法?

非常感谢!

问候 Aaren

回答

1

使用JSON从PHP更改上下文的JavaScript。其他步骤都是正确的。但你在哪里挣扎?

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

如果您的列表可以改变的,你可以使用PHP脚本(audio_list.php,例如)返回列表作为JSON,并使用AJAX调用来获取更新列表。

+0

谢谢。现在这个列表来自php会话,因此我可以很容易地将它转换为json。所以Joshuas的尝试帮助我进一步。 –