Проблема при использовании echo'd ++ $ value в javascript в качестве части страницы аудиопроигрывателя html5 - PullRequest
1 голос
/ 13 апреля 2020

Я сам создавал «звуковую панель», которая заполняет пользовательский аудиоплеер HTML5 для каждого mp3-файла, найденного в каталоге. Теперь эта сторона все работает точно так, как я ожидал, но мои проблемы начались, когда я попытался добавить пользовательский таймер, который использует javascript.

Для каждого игрока, я смог сделать пользовательские элементы управления и сделать все переменные объединяются с такими вещами, как

<audio id="player<?php echo $count1++;?>" src="audio/<?php echo rtrim($file, " "); ?>"></audio>

Так что использование PHP многократно повторяет игроков и элементы управления, но с новыми идентификаторами, и, как уже упоминалось, все это прекрасно работает, но когда я пытаюсь применить То же самое для фрагмента javascript, который я использую, здесь начинаются мои проблемы, так как ++, кажется, идет немного Пит Тонг и приводит к 2,4,6,8 или 3,6,9,12, когда я ожидал 1,2,3,4

Вот код js, о котором идет речь

// Get the audio element with id from variable
var count10 = "<?php echo $count10 ;?>";
var aud = document.getElementById("player" + count10);

    // Assign an ontimeupdate event to the audio element, and execute a function if the current playback position has changed
    aud.ontimeupdate = function() {myFunction()};

    var count11 = "<?php echo $count11 ;?>";
    function myFunction() {
      // Display the current position of the audio in a p element with id from var
      document.getElementById("time" + count11).innerHTML = aud.currentTime;
    }

Для ясности моя проблема заключается в добавлении таймера, который должен появляться под каждым воспроизведением / остановкой Если вы нажмете кнопку «play», в настоящее время это работает только для экземпляра первого игрока в приведенном выше коде для вставки.

Я потратил 4-5 часов сейчас только на то, чтобы решить эту проблему без необходимости спрашивать здесь и добрались до сути больше не весело! Пожалуйста, помогите, большое спасибо.

1 Ответ

1 голос
/ 14 апреля 2020

Вместо того, чтобы вести отдельный счет для связывания элемента, вы можете использовать foreach l oop, чтобы дать вам индекс элемента ...

Так что, когда вы делаете

foreach ($files as $file) {

вы можете использовать

foreach ($files as $id => $file) { 

, а затем использовать

echo $id;

внутри l oop для вывода соответствующего идентификатора.

...