Апостроф в JavaScript'е

hsasha

Новичок
Апостроф в JavaScript'е

Здравствуйте!
У меня проблема...При передаче переменных на JS некоторые в значении имеют апострофи выдается ошибка!
Как исправить?
Можно заменять значения переменных средством JS?Например " ' "=>""; или нет?
Помогите пожалуйста
 

hsasha

Новичок
Вот кусок кода
PHP:
window.open("http://mydomen.com/eng.html?t=prev&trackid=" + trackid +"&albumid=" + albumid + "&songname=" + songname + "&artistname=" + artistname ,null,
            "height=480,width=640,status=no,toolbar=no,menubar=no,location=no,resizable=no");
где songname и artistname передают название песни и имя артиста соответственно, но когда в одном и этих переменных есть апостроф, скрипт не запускается:( Как исправить?
 

serglt

Анус, ой, Ахтунг
Тогда по подробнее, напиши, скорее всего не работает не в этом месте. тут глючить нечему.
 

denver

?>Скриптер
hsasha
window.open("http://mydomen.com/eng.html?t=prev&trackid=" + trackid +"&albumid=" + albumid + "&songname=" + songname + "&artistname=" + artistname ,null,
"height=480,width=640,status=no,toolbar=no,menubar=no,location=no,resizable=no");
Приведи конечное значение параметров window.open() которые приводят к ошибке.
 

hsasha

Новичок
Ой, я извиняюсь,не то рассмотрел в выше приведенный код передается значение :
вот кусок из функции(сюда передается):
PHP:
function preview(trackid,albumid,songname,artistname) {


window.open("http://mydomen.com/eng.html?t=prev&trackid=" + trackid +"&albumid=" + albumid + "&songname=" + songname  + "&artistname=" + artistname ,null,
            "height=480,width=640,status=no,toolbar=no,menubar=no,location=no,resizable=no");
return false;
}
А это откуда передается(по ссылке):
PHP:
<a href="#" onclick='return preview($albums[i].items[j].ID,$albums[i].ID,"$albums[i].items[j].Name","$artist.Name")'>
Так вот в $albums.items[j].Name бывают апострофы..и глюк...
З.Ы.Я теперь ненавижу апострофы!
 

serglt

Анус, ой, Ахтунг
function toJsStr ($str) {
return str_replace ("\n", '\n', str_replace ("\r", '\r', addslashes ($str)));
}
Попробуй поюзать вот эту функцию.
У тебя беда в <a href="#" onclick='return preview($albums.items[j].ID,$albums.ID,"$albums.items[j].Name","$artist.Name")'>
 

serglt

Анус, ой, Ахтунг
WP
Чго такого смешного?
addcslashes - не знал такой функции
 

hsasha

Новичок
На пхп я знаю...я думал средствами JS чтото можно сообразить...
Ладно буду пхп юзать.
Тему можно закрывать
 

denver

?>Скриптер
hsasha
На JS это тоже можно сделать, только ты не привел те значения при которых возникает ошибка. В том что ты привел не хватает значений trackid, albumid, songname и т.п. Соответственно мы можем только догадываться где именно в этой строке ошибка.
 

hsasha

Новичок
denver
А это что? <a href="#" onclick='return preview($albums.items[j].ID,$albums.ID,"$albums.items[j].Name","$artist.Name")'>
$albums.items[j].ID -- trackid
$albums.ID -- albumid
$albums.items[j].Name -- songname
$artist.Name -- artistname
 

denver

?>Скриптер
Не хватает самих значений переменных (а не просто переменных) вызывающих ошибку.

-~{}~ 17.11.06 19:28:

PS. Перечитал, без PHP addslashes не обойтись в любом случае..
 

hsasha

Новичок
trackid -- цифры
albumid -- цифры
songname -- например Eva'a Final Broadcast (апостроф-глюк)
artistname- тоже самое

-~{}~ 20.11.06 16:29:

Решил проблему написанием функции на пхп
PHP:
function apostrof($zamena)
{
$apostrof = array("'"=>"`");
return strtr($zamena,$apostrof);
}
Просто заменил на обратный апостроф:)
Всем спасибо, тема закрыта.
 

maxwell

artifex
Ужос, решение - жуть :)

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

Да и русские названия функций и переменных - сакс
 
Сверху