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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Дерево из БД, Полностью не скрывается ветка дерева 
:(
    Опции темы
Самозванка
Дата 17.7.2007, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Девушка в стиле IT
**


Профиль
Группа: Завсегдатай
Сообщений: 484
Регистрация: 5.9.2006
Где: USA

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



Беру данные из БД, иерархия получается из длины строки одного из столбцов. (там есть 5,10, 15,20,25 и 30 символов). Проблема в том, что когда я делаю дерево, при раскрытии или сварачивание одной из ветвей, сварачивается только первое значение из цикла. Привожу код:
Код

<script language="JavaScript">
function changeDisplay(id)
{
  var ul = document.getElementById('ul' + id).style;
  var li = document.getElementById('li' + id).style;
  if ( 'none' == ul.display )
  {
    ul.display = 'block';
    li.listStyleImage = 'url("open.gif")';
  }
  else
  {
    ul.display = 'none';
    li.listStyleImage = 'url("closed.gif")';
  }
}
</script>
<table width="100%" height="100%" border="2">
  <tr>
    <td width="50%">
      <?php
$conn = odbc_connect( "--", "---", "---" );
$sSQL="SELECT CLASSID, CLASSNAME FROM ---- ORDER BY -----";
$result=odbc_exec($conn, $---);
echo ("<ul id='ul0'>\n");
//odbc_result_all($result);
for ($i=0; $i<odbc_num_rows($result); $i++)
{
$f=odbc_fetch_array($result);
if (strlen($f[---])==5)
{
echo("<li id='li1'>\n");
echo ("<a href='javascript: changeDisplay(1);'>".$f["---"]."</A>"."  \n");
}
if (strlen($f[---])==10)
{
echo("<ul id='ul1' style='display: block; '>\n");
echo("<li id='li2'>\n");
echo ("<a href='javascript: changeDisplay(2);'>".$f["---"]."</A>"."  \n");
echo("</UL>\n");
}
if (strlen($f[---])==15)
{
echo("<ul id='ul2' style='display: block; '>\n");
echo("<ul id='ul2' style='display: block; '>\n");
echo("<li id='li3'>\n");
echo ("<a href='javascript: changeDisplay(3);'>".$f["---"]."</A>"."  \n");
echo("</UL>\n");
echo("</UL>\n");
}
if (strlen($f[---])==20)
{
echo("<ul id='ul3' style='display: block; '>\n");
echo("<ul id='ul3' style='display: block; '>\n");
echo("<ul id='ul3' style='display: block; '>\n");
echo("<li id='li4'>\n");
echo ("<a href='javascript: changeDisplay(4);'>".$f["---"]."</A>"."  \n");
echo("</UL>\n");
echo("</UL>\n");
echo("</UL>\n");
}
if (strlen($f[---])==25)
{
echo("<ul id='ul4' style='display: block'>\n");
echo("<ul id=”ul4' style='display: block'>\n");
echo("<ul id='ul4' style='display: block'>\n");
echo("<ul id='ul4' style='display: block'>\n");
echo("<li id='li5'>\n");
echo ("<a href='javascript: changeDisplay(5);'>".$f["---"]."</A>"."  \n");
echo("</UL>\n");
echo("</UL>\n");
echo("</UL>\n");
echo("</UL>\n");
}
if (strlen($f[---])==30)
{
echo("<ul id='ul5' style=”display: block'>\n");
echo("<ul id='ul5' style='display: block'>\n");
echo("<ul id='ul5' style='display: block'>\n");
echo("<ul id='ul5' style='display: block'>\n");
echo("<ul id='ul5' style='display: block'>\n");
echo("<li id='li6'>\n");
echo ("<a href='javascript: changeDisplay(6);'>".$f["---"]."</A>"."  \n");
echo("</UL>\n");
echo("</UL>\n");
echo("</UL>\n");
echo("</UL>\n");
echo("</UL>\n");
}
}
echo("</UL>\n");
odbc_close( $conn );
?>
    </td>
    <td width="25%">&nbsp;</td>
  </tr>
</table>



Как сделать чтоб скрывалась не только первая строчка, но и все строчки, относящиееся к данной категории?
PM MAIL ICQ   Вверх
SelenIT
Дата 17.7.2007, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

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



Самозванка, так у Вас айдишники повторяются (что само по себе - грубая ошибка), и changeDisplay(6), например, действует на первую пару элементов с шестеркой в id-е (а мог бы и вообще не действовать - стандарта на эту нештатную ситуацию нет). Используйте уникальный id из базы, тем более, для Вашей JS-функции уровень вложенности несущественен.

Цитата(Самозванка @  17.7.2007,  09:57 Найти цитируемый пост)
иерархия получается из длины строки одного из столбцов. (там есть 5,10, 15,20,25 и 30 символов)

Это у Вас модель "материализованный путь"? Или что-то свое, еще более оригинальное?


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




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


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

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