Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JS как массивом получить id, Помогите с кодом! 
:(
    Опции темы
depodimon
Дата 28.10.2009, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 27.10.2009

Репутация: нет
Всего: нет



Собственно выбираются пользователи. Выбираются все с помощью while там допустим к пользователю идёт описание и чуть ниже на каждом пользователи есть ссылка расширенное описание, нужно чтобы когда жмёшь появлялось скрытое div окно с расширенным описанием(подгружается всё сразу туда)

Код


<?php
//тут всякий код
$i=1;
while ($row = mysql_fetch_array($result)){

$id_user="$row[id]"; //Это id пользователя
if($access=="true")
{
echo "
<table><tr><td>
<a href='#' class=Amenu onclick=\"javascript:Info('id".$i."')\">>Расширенная инфа</a>
</td></tr></table>

<script>
function Info(id)
{
var obj=document.getElementById('id".$i."');
if(obj.style.display=='none')
obj.style.display='block';
else
obj.style.display='none';
}
</script> 
<div name='loadinfo' id='id".$i."' style='display:none;'>
тут инфа</div>
";
}
$i++;
}



он почему-то выводит див только на последнем... 
В чём ошибка? Нужно чтобы под каким человеком нажал там он и показал скрытый див.

PM MAIL   Вверх
EmilRegis
Дата 28.10.2009, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 306
Регистрация: 21.9.2007

Репутация: 3
Всего: 4



зачем вы, передавая в функцию info конкретный id, продолжаете внутри неё использовать php?
можно ведь просто вот так записать 
Код

var obj=document.getElementById(id);

Повыводите алерты чему равно значение id для каждого случая
А вот эта переменная $id_user="$row[id]"; у вас видимо позже используется? для чего вы её тут определили?)
Вот это можно покороче написать. ну просто букавок будет поменьше))
вместо
Код

if(obj.style.display=='none')
   obj.style.display='block';
else
   obj.style.display='none';

написать
Код

obj.style.display = (obj.style.display=='none':'block'?'none');

PM MAIL   Вверх
depodimon
Дата 28.10.2009, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 27.10.2009

Репутация: нет
Всего: нет



Если делаю просто id без ".$i."
Вообще не работает.

Выводит Id=3  если использовать код который выше.

Переменная  $id_user="$row[id]"; думал к ней привязывать див чтоб под id пользователя выводил но чего-то не получилось..  Сделал счётчик. Всёровно не работает(вернее работает, но див открывается только в конце на последнем пользователе)
PM MAIL   Вверх
EmilRegis
Дата 28.10.2009, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 306
Регистрация: 21.9.2007

Репутация: 3
Всего: 4



ещё можно код скрипта вынести за цикл while))) дабы не вводить браузеры в недоумение)
а вообще, если серьёзно, то сформируй страницу и посмотри код который получился...и увидишь сразу в чём проблема...

Добавлено через 5 минут и 42 секунды
аа ну всё, я понял в чём твоя проблема))ты передаваемый в функцию параметр вообще не используешь...Зато используешь пхп-шную переменную, которая доходя до конца цикла, становится =3...Т.о. при клике на любую расширенную инфу у тебя вызывается функция, которая обрабатывает элемент с id = 'id3'

Это сообщение отредактировал(а) EmilRegis - 28.10.2009, 11:44
PM MAIL   Вверх
EmilRegis
Дата 28.10.2009, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 306
Регистрация: 21.9.2007

Репутация: 3
Всего: 4



думаю так заработает...если вынесешь скрипт за тело цикла)
Код

function Info(id)
{
document.getElementById(id).style.display = (document.getElementById(id).style.display=='none':'block'?'none');
}


Это сообщение отредактировал(а) EmilRegis - 28.10.2009, 12:02
PM MAIL   Вверх
depodimon
Дата 28.10.2009, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 27.10.2009

Репутация: нет
Всего: нет



Сделал вот так:

Код

echo "
<script language='javascript'>
function Info(id)
{
var obj=document.getElementById('id');
if(obj.style.display=='none')
obj.style.display='block';
else
obj.style.display='none';
}
</script>
";
$result = mysql_query("SELECT * FROM komments WHERE ToUser = '$komy' AND photo='$photo' ORDER BY id DESC",$link);
while ($row = mysql_fetch_array($result)) :

$id_komment1=$row[id];

echo "
<table>
<tr>
<td align=right>

<a href=\"#\" class=\"Amenu\" onclick=\"javascript:Info('id".$id_komment1."')\">>Расширенная инфа</a>
</td>
</tr>
</table>


<div name=\"loadinfo\" id=\"id".$id_komment1."\" style=\"display:none;\">
тут инфа</div>    
";


При нажатии на ссылку кидает наверх и ничего не открывает. В чём ошибка?

PM MAIL   Вверх
EmilRegis
Дата 28.10.2009, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 306
Регистрация: 21.9.2007

Репутация: 3
Всего: 4



вот здесь
Код

var obj=document.getElementById('id'); //так писать не надо
var obj=document.getElementById(id); // а вот так надо, вы ж параметр передаёте, а не строку 'id'


Это сообщение отредактировал(а) EmilRegis - 28.10.2009, 18:30
PM MAIL   Вверх
bars80080
Дата 28.10.2009, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 44
Всего: 315



а лучше не id, а id1, чтобы javascript не искал у документа или функции не существующий идентификатор
PM MAIL WWW   Вверх
depodimon
Дата 29.10.2009, 01:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 27.10.2009

Репутация: нет
Всего: нет



 smile Всё заработало! Спасибо огромное! А то я чайник вообще а JS не шарю)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0515 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.