У меня есть следующий PHP-код

$bigImageSrc = 'images/'.$prodXML->bottles->bottle[$i]->bigImage;
$text = $prodXML->bottles->bottle[$i]->title;
$title = $prodXML->bottles->bottle[$i]->text;    
echo "<a href=javascript:void(0); onClick=showProduct('$bigImageSrc', '$text', '$title');>

Но я получаю эту ошибку:

синтаксическая ошибка
showProduct ( ' изображения / image1.jpg ' ,

Это работает только для одной переменной в функции showProduct.

Есть идеи, где я ошибаюсь?

0
daidai 5 Авг 2010 в 09:14

3 ответа

Лучший ответ
<a href=javascript:void(0); onClick=showProduct('$bigImageSrc', '$text', '$title');>

У вас нет кавычек вокруг атрибута onClick, что означает, что пробел после '$bigImageSrc', интерпретируется как конец значения этого атрибута.

Вы должны заключать каждый атрибут в HTML в кавычки, чтобы избежать множества проблем.

Например.

echo "<a href=\"javascript:void(0);\" onClick=\"showProduct('$bigImageSrc', '$text', '$title');\">";

Вы также не должны использовать javascript: void (0); в качестве атрибута href, который прерывается, когда Javascript отключен или кто-то пытается «открыть в новом окне», «добавить в закладки», «открыть в новой вкладке» и т. д. по этой ссылке. Но это отдельная проблема.

6
thomasrutter 5 Авг 2010 в 05:24

Работать с такими строками намного проще, если вместо эха вы просто выйдете из режима PHP. Тогда вам не нужно беспокоиться о различных видах цитат.

$bigImageSrc = 'images/'.$prodXML->bottles->bottle[$i]->bigImage;
$text = $prodXML->bottles->bottle[$i]->title;
$title = $prodXML->bottles->bottle[$i]->text;    
?>
<a href="javascript:void(0);" onClick="showProduct('$bigImageSrc', '$text', '$title')"

Более того, не используйте onclick. Назначьте обработчик событий с attachEvent / addEventHandler (http://www.quirksmode.org/js/events_advanced). .html) или что-то вроде jQuery bind / .click. Так намного проще.

0
Mark Snidovich 5 Авг 2010 в 05:31

Ваша HTML-ссылка распечатывается без кавычек. Хотя я понятия не имею, будет ли это работать во всех браузерах, в любом случае, было бы неплохо использовать их.

1
Kurt Du Bois 5 Авг 2010 в 05:18