Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Вывод данных из базы в цикле со ссылкой на всплывающее окно (https://javascript.ru/forum/events/8979-vyvod-dannykh-iz-bazy-v-cikle-so-ssylkojj-na-vsplyvayushhee-okno.html)

alexvb 23.04.2010 10:37

Вывод данных из базы в цикле со ссылкой на всплывающее окно
 
Вывожу картинки из базы в цикле. Делаю ссылки на картинки.

<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 только осваиваю. Уже мозги свернулись.

Skipp 23.04.2010 10:49

1. Это вопрос относящийся больше к PHP чем к JS.
2. Смотри как ты получаешь данные:
a. Возможно неправильно построен запрос.
b. Неправильно построен цикл или его условие не верны.

subzey 23.04.2010 11:00

<mode type="telepate">
В документе не может быть два (и более) элемента с одинаковым id.
</mode>

Skipp 23.04.2010 11:04

Блин а я даже не заметил)))

<div id="wspok<?echo $i?>">
Сделай так что ли)

alexvb 23.04.2010 11:59

Спасибо за участие. По поводу запроса к PHP то все верно, в html коде просматриваются картинки с правильными ссылками, т. е. при просмотре html кода видно, что каждой картинке присвоена своя оригинальная ссылка, а вот выводиться ко всем картинкам ссылка на ПЕРВУЮ. Видимо действтиетельно вопрос в id. Т.е. нужно для каждой картинки свой id ставить? А на 1000 картинок?

Skipp 23.04.2010 12:18

а тебе это id вообще нужен?

alexvb 23.04.2010 12:54

А как без него? Задача: нужно вывести из БД картинки в цикле, и чтобы щелкая по этим картинкам всплывало окно с их описанием. Вот пришел к такому решению, но не доработал до конца. Поэтому и попросил помощи. Если есть другое решение, пожалуйста подсажите, буду очень признателен.

alexvb 23.04.2010 13:12

Просто я использовал функцию .getElementById(), а она насколько мне известно существует именно с id.

Skipp 23.04.2010 13:27

можно ещё использовать this .
Но думаю с id будет лучше, а насчёт 1000 ну что поделать, придётся.

alexvb 23.04.2010 13:38

На этом форуме в ветке http://javascript.ru/forum/misc/2759...hhee-okno.html уже было нечто подобное, но как оно работает непонятно, а задача в принципе такая же.

alexvb 23.04.2010 13:40

И в догонку, а нелзья ли сделать, чтобы этот id как то в цикле задавался, ведь его содержимое по сути одинаковое, только выводить нужно n-ое количество раз?

Skipp 23.04.2010 13:45

думать, думать и ещё раз думать. Я уверен что ответы на ваши вопросы очень просты, необходимо только понять как их решить. Возможно вы что-то не правильно понимаете.

KingStar 10.02.2012 15:55

На вскидку что-то подобное:


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 обойдешься

Skipp 10.02.2012 16:06

оооу эта тема 2010 года,
думаю уже вопрос решён и не раз:)

KingStar 10.02.2012 16:16

ну мот кому еще понадобится, прост напоролся :)


Часовой пояс GMT +3, время: 22:31.