двойные кавычки в переменных, вызывающие ошибку javascript - PullRequest
0 голосов
/ 29 октября 2009

В приведенном ниже коде, когда переменные $artist или $title содержат ", это приводит к сбою команды JavaScript.

Есть ли другой способ, которым я могу закодировать их, кроме addlashes (), чтобы это исправить?

$artist = addslashes($row['artist']);
    $title = addslashes($row['title']);

    echo '<div class="play" style="display: inline"><a href="javascript:playSong'."('$artist','$title','$row[file]','$row[id]')".'">

Ответы [ 3 ]

1 голос
/ 29 октября 2009

Вы можете рассмотреть кодировку URL для переменных, например

$artist = rawurlencode($row['artist']);
$title = rawurlencode($row['title']);

echo "..... playSong(unescape('$artist'), unescape('$title')... ";

или переместите декодирование в функцию playSong.

// редактировать: вот как вы правильно получаете ваши цитаты

echo "<div class='play' style='display: inline'><a href=\"javascript:playSong(unescape('$artist'),unescape('$title'),'$row[file]','$row[id]')\">....";
0 голосов
/ 29 октября 2009

Попробуйте это

echo '<div class="play" style="display: inline"> <a href="javascript:playSong('$artist','$title','$row[file]','$row[id]')" >'

0 голосов
/ 29 октября 2009

Вы можете попробовать urlencode().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...