PHP stringID не читается в onclick из эха

У меня есть аудиоплеер, нормально работающий в HTML, но когда я вызываю его из эха PHP, кажется, что он не получает имя идентификатора div, поэтому он не воспроизводит мой звук. Вот мой код:

// Show audio
if ($sObj->get('audio') != null) {
    $sAudio = $sObj->get('audio');
    $audioURL = $sAudio->getURL();
    $playerName = 'player';
    echo '
    <audio id = "player" ontimeupdate = "updateTime()" src = "'.$audioURL.'"></audio>
    <a class = "btn btn-primary btn-round" id = "songPlay" onclick = "play('.$playerName.')"> --> THE ISSUE SEEMS TO BE HERE...

<i class = "fa fa-play"></i></a>
<a class = "btn btn-primary btn-round" id = "songPause" onclick = "pause()"><i class = "fa fa-pause"></i></a>
<a class = "btn btn-primary btn-round" id = "songStop" onclick = "stopSong()"><i class = "fa fa-stop"></i></a>
<div id = "songTime"><strong>0:00 / 0:00</strong></div>
<div id = "songSlider" onclick = "setSongPosition(this,event)"><div id = "trackProgress"></div></div>
';
}

По какой-то причине проигрыватель не воспроизводит мой звук, URL-адрес звука правильный, потому что, если я использую тот же звуковой тег и код в файле HTML, он работает отлично.

Что я делаю не так в PHP?

Спасибо!

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
28
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Строки PHP не являются многострочными. Это означает, что вы не можете просто вставить новую строку.

Вы должны использовать синтаксис Heredoc:

$str = <<<STR1
line1
line2
line3
...
STR1;

Или вы можете разделить строки с помощью "\n":

$str = 
    "line1\n" .
    "line2\n" .
    "line3";

Вы все еще можете интерполировать переменные:

echo <<<HTML
    <audio id = "player" ontimeupdate = "updateTime()" src = "$audioURL"></audio>
    <a class = "btn btn-primary btn-round" id = "songPlay" onclick = "play('$playerName')"><i class = "fa fa-play"></i></a>
    <a class = "btn btn-primary btn-round" id = "songPause" onclick = "pause()"><i class = "fa fa-pause"></i></a>
    <a class = "btn btn-primary btn-round" id = "songStop" onclick = "stopSong()"><i class = "fa fa-stop"></i></a>
    <div id = "songTime"><strong>0:00 / 0:00</strong></div>
    <div id = "songSlider" onclick = "setSongPosition(this,event)">
        <div id = "trackProgress"></div>
    </div>
HTML;

Другие вопросы по теме