Вывод данных из базы в цикле со ссылкой на всплывающее окно
Вывожу картинки из базы в цикле. Делаю ссылки на картинки.
<a href="#" onclick="document.getElementById('wspok').style.di splay='block'; return false;" title="Всплывающее окно"> <div class='ram0' align='center'><img src = "<? echo $myrow['foto'] ?>"></div> </a> Вывожу во всплывающем окне дополнительную информацию. <div id="wspok"> <? echo "<br>".$myrow['name']."<br>"; echo '<img src="'.$myrow['foto'].'" alt="image" />'; ?> Почему то по всем ссылкам открывается только всплывающее окно с информацией по первой ссылке. Люди, помогите. JS только осваиваю. Уже мозги свернулись. |
1. Это вопрос относящийся больше к PHP чем к JS.
2. Смотри как ты получаешь данные: a. Возможно неправильно построен запрос. b. Неправильно построен цикл или его условие не верны. |
<mode type="telepate">
В документе не может быть два (и более) элемента с одинаковым id. </mode> |
Блин а я даже не заметил)))
<div id="wspok<?echo $i?>"> Сделай так что ли) |
Спасибо за участие. По поводу запроса к PHP то все верно, в html коде просматриваются картинки с правильными ссылками, т. е. при просмотре html кода видно, что каждой картинке присвоена своя оригинальная ссылка, а вот выводиться ко всем картинкам ссылка на ПЕРВУЮ. Видимо действтиетельно вопрос в id. Т.е. нужно для каждой картинки свой id ставить? А на 1000 картинок?
|
а тебе это id вообще нужен?
|
А как без него? Задача: нужно вывести из БД картинки в цикле, и чтобы щелкая по этим картинкам всплывало окно с их описанием. Вот пришел к такому решению, но не доработал до конца. Поэтому и попросил помощи. Если есть другое решение, пожалуйста подсажите, буду очень признателен.
|
Просто я использовал функцию .getElementById(), а она насколько мне известно существует именно с id.
|
можно ещё использовать this .
Но думаю с id будет лучше, а насчёт 1000 ну что поделать, придётся. |
На этом форуме в ветке http://javascript.ru/forum/misc/2759...hhee-okno.html уже было нечто подобное, но как оно работает непонятно, а задача в принципе такая же.
|
И в догонку, а нелзья ли сделать, чтобы этот id как то в цикле задавался, ведь его содержимое по сути одинаковое, только выводить нужно n-ое количество раз?
|
думать, думать и ещё раз думать. Я уверен что ответы на ваши вопросы очень просты, необходимо только понять как их решить. Возможно вы что-то не правильно понимаете.
|
На вскидку что-то подобное:
for (i=0; i<=5; i++) { // В ID добавляем номер цикла <a href="#" onclick="document.getElementById('wspok_'+i).style.display='block'; return false;" title="Всплывающее окно"> <div class='ram0' align='center'><img src = "<? echo $myrow['foto'] ?>"></div> </a> } <!- В блок также добавляем номер цикла --> <div id="wspok_0"> <? echo "<br>".$myrow['name']."<br>"; echo '<img src="'.$myrow['foto'].'" alt="image" />'; ?> </div> <div id="wspok_1"> <? echo "<br>".$myrow['name']."<br>"; echo '<img src="'.$myrow['foto'].'" alt="image" />'; ?> </div> и т.д. если цикл WHILE: $i=0; while(.........) { // здесь играем с блоками и $i $i++; } ИМХО еще посоветую вместо <a href="#" используй <span ... , т.к. при большой страничке и клике по ссылке браузер срабатывает и позицианируется в начало, что неудобно если клик в был в конце странички. Дабы браузер не срабатывал и страничка не дергалась - <span> а title="Всплывающее окно" перенеси в <img src = "<? echo $myrow['foto'] ?>"> или вообще повесь событие onclick на изображение и style="cursor: pointer;" и без span обойдешься |
оооу эта тема 2010 года,
думаю уже вопрос решён и не раз:) |
ну мот кому еще понадобится, прост напоролся :)
|
Часовой пояс GMT +3, время: 22:31. |