[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: скрытие и раскрытие таблицы
Guest
Есть таблица.Хочу скрыть несколько строк из этой таблицы, а чтобы при нажатии на кнопку она раскрывалась.Как это осуществить????????????



Спустя 1 час, 59 минут, 50 секунд (20.10.2011 - 22:39) tanya12345 написал(а):
подскажите пожалуйста)

Спустя 37 минут, 36 секунд (20.10.2011 - 23:16) imbalance_hero написал(а):
document.getElementById().style.display = "block"
Тебе надо менять свойство: display:block, display:none, точнее проверять, какое сейчас на объекте и ставить другое.

Спустя 10 минут, 12 секунд (20.10.2011 - 23:27) Winston написал(а):
Свернутый текст
<style type="text/css">
td{
width: 100px;
height: 100px;
}
</style>
<table
border="1">
<tr>
<td
onclick="this.style.display = 'none'">
первый
</td>
<td
onclick="this.style.display = 'none'">
второй
</td>
</tr>
<tr>
<td
onclick="this.style.display = 'none'">
третий
</td>
<td
onclick="this.style.display = 'none'">
четвертый
</td>
</tr>
</table>

Спустя 9 часов, 58 минут, 10 секунд (21.10.2011 - 09:25) tanya12345 написал(а):
Делаю по все по вашему совету:
Моя таблица формируется динамически из базы данных.
И выглядит примерно так:
Строка : имя первого сайта (кнопки скрыть/показать)
//Далее идущий блок должен убираться при помощи скрыть/показать.Начало блока
Строка: страница, критическое событие, дата ****
Строка: страница, критическое событие, дата
Строка: страница, критическое событие, дата
//Конец блока
Строка : имя второго сайта (кнопки скрыть/показать)
//Далее идущий блок должен убираться при помощи скрыть/показать.Начало блока
Строка: страница, критическое событие, дата
Строка: страница, критическое событие, дата
//Далее идущий блок должен убираться при помощи скрыть/показать.Начало блока
И т.д.
МОЯ ПРОБЛЕМА:
При нажатии скрыть/показать на протяжении всей таблицы у меня убирается только 1 строка из блока, который должен убираться при помощи скрыть/показать ,ОТНОСЯЩИЙСЯ К ПЕРВОМУ САЙТУ, вместо всего блока.
**** - обозначена данная строка у меня на схеме, именна она открывается/скрывается, в какой бы части таблицы я ни нажала кнопку скрыть/показать.
В чем дело????Помогите решить проблему??? Пожалуйста!!!!!!

<html>
<head>
<title>
Страница </title>
</head>
<body>
<div
id="main">
<?php

include ("menu.php");
?>
<div
id="cont">
<table
width="100%" border="1" cellspacing="0" cellpadding="5">
<tr
style="text-align:center;">
<td>
Страница</td>
<td>
Критическое событие</td>
<td>
Дата</td>
</tr>
<?php

require("class.php");
//Выбираю список сайтов:
$resa = mysql_query("SELECT * FROM sait") or die(mysql_error());
while ($mass = mysql_fetch_assoc($resa))
{
$ap=$mass['id'];
$res = mysql_query("SELECT `sait`.`name`,`kategorii`.`kati` , `vest`.`razn`,`vest`.`times`,`vest`.`id`,`vest`.`datas`, `krit_sobytiy`.`names`,`pages`.`page` FROM `sait`,`kategorii` ,`vest`, `krit_sobytiy`,`pages` WHERE `sait`.`id`='" .$ap."' AND `sait`.`id`=`vest`.`saitid` AND `kategorii`.`id`=`sait`.`kategory` AND `krit_sobytiy`.`id`=`vest`.`sobytie` AND `vest`.`idpages`=`pages`.`id` AND `vest`.`ne_pokaz`=0 ORDER BY `krit_sobytiy`.`names`") or die(mysql_error());
$a=mysql_num_rows($res);
if ($a==0)
{
}

else
{
//Делаю строку с именем сайта
echo "<tr>";?>
<td
colspan=5 >
<?php

echo $mass['name'];
?>
<button
onclick="document.getElementById('must_delete').style.display='none'">hiden</button>
<button
onclick="document.getElementById('must_delete').style.display=''">show</button>
</td>
</tr>

<?php

//Вывожу в цикле все строки, которые связанные с выбранным сайтом
while ($mass = mysql_fetch_assoc($res))
{
?>
<tr
id="must_delete">
<?php

echo "<td >" . $mass['page'] . "</td>";
echo "<td >" ;
echo "+"; echo $mass['razn'];
echo "</td>" ;
echo "<td >" . $mass['names'] . "</td>";
echo "<td >" . $mass['datas'] ." " . $mass['times'] ."</td>";
echo "</tr>";
}
?>
</tr>
<?php

}
}

?>
</table></div></div></body></html>


Спустя 1 час, 2 минуты, 33 секунды (21.10.2011 - 10:27) YVSIK написал(а):
tanya12345 Тания!! пожалуйста приши в личку только по высшей необходимости !!
а чтоб все было понятно и не только тебе, а всем, пропробуй оформить свой код как тут написано АГА!???
спасибо за понимание!!

Спустя 30 минут, 54 секунды (21.10.2011 - 10:58) tanya12345 написал(а):
Отформатировала код. Проблема не решена. Прошу помочь.
Код:

<html>
< head > < title > Страница < / title > < / head > < body > < divid = "main" > <?phpinclude ("menu.php");
?>
<div
id="cont">
<table
width="100%" border="1" cellspacing="0" cellpadding="5">
<tr
style="text-align:center;">
<td>
Страница</td>
<td>
Критическое событие</td>
<td>
Дата</td>
</tr>
<?php
require ("class.php");
//Выбираю список сайтов:
$resa = mysql_query("SELECT * FROM sait") or die(mysql_error());
while($mass = mysql_fetch_assoc($resa))
{
$ap = $mass['id'];
$res = mysql_query("SELECT `sait`.`name`,`kategorii`.`kati` , `vest`.`razn`,`vest`.`times`,`vest`.`id`,`vest`.`datas`, `krit_sobytiy`.`names`,`pages`.`page` FROM `sait`,`kategorii` ,`vest`, `krit_sobytiy`,`pages` WHERE `sait`.`id`='" .$ap."' AND `sait`.`id`=`vest`.`saitid` AND `kategorii`.`id`=`sait`.`kategory` AND `krit_sobytiy`.`id`=`vest`.`sobytie` AND `vest`.`idpages`=`pages`.`id` AND `vest`.`ne_pokaz`=0 ORDER BY `krit_sobytiy`.`names`") or die(mysql_error());
$a = mysql_num_rows($res);

if($a == 0)
{
}

else
{
//Делаю строку с именем сайта
echo "<tr>";
?>
<td
colspan=5 >
<?php
echo $mass['name'];
?>
<button
onclick="document.getElementById('must_delete').style.display='none'">hiden</button>
<button
onclick="document.getElementById('must_delete').style.display=''">show</button>
</td>
</tr>

<?php

//Вывожу в цикле все строки, которые связанные с выбранным сайтом
while($mass = mysql_fetch_assoc($res))
{
?>
<tr
id="must_delete">
<?php
echo "<td >". $mass['page'] ."</td>";
echo "<td >";
echo "+";
echo $mass['razn'];
echo "</td>";
echo "<td >". $mass['names'] ."</td>";
echo "<td >". $mass['datas'] ." ". $mass['times'] ."</td>";
echo "</tr>";
}
?>
</tr>
<?php

}
}

?> < / table > < / div > < / div > < / body > < / html
?>

Делаю по все по вашему совету:
Моя таблица формируется динамически из базы данных.
И выглядит примерно так:
Строка : имя первого сайта (кнопки скрыть/показать)
//Далее идущий блок должен убираться при помощи скрыть/показать.Начало блока
Строка: страница, критическое событие, дата ****
Строка: страница, критическое событие, дата
Строка: страница, критическое событие, дата
//Конец блока
Строка : имя второго сайта (кнопки скрыть/показать)
//Далее идущий блок должен убираться при помощи скрыть/показать.Начало блока
Строка: страница, критическое событие, дата
Строка: страница, критическое событие, дата
//Далее идущий блок должен убираться при помощи скрыть/показать.Начало блока
И т.д.
МОЯ ПРОБЛЕМА:
При нажатии скрыть/показать на протяжении всей таблицы у меня убирается только 1 строка из блока, который должен убираться при помощи скрыть/показать ,ОТНОСЯЩИЙСЯ К ПЕРВОМУ САЙТУ, вместо всего блока.
**** - обозначена данная строка у меня на схеме, именна она открывается/скрывается, в какой бы части таблицы я ни нажала кнопку скрыть/показать.
В чем дело????Помогите решить проблему??? Пожалуйста!!!!!!

Спустя 1 час, 54 минуты, 53 секунды (21.10.2011 - 12:53) Xes написал(а):
Ну так ясен перец ты обршаешься по id=must_delete а у тебя у всех таблиц этот id
динамически формируй id каждого блока
must_delete_1
must_delete_2
И у кнопок соответвено должно быть
onclick="document.getElementById('must_delete_1').style.display='none'"

Спустя 43 минуты, 7 секунд (21.10.2011 - 13:36) imbalance_hero написал(а):
ID - должен быть уникальным, ни одного дубля(!).
При этом выборка идёт только по первому ID, то есть выбирается и скрывается ТОЛЬКО первый <tr> у тебя, а не таблица.

Либо давай уникальные id, тогда их указывать надо, если одним нажатием тебе надо скрыть перечень блоков, тогда обращаться к ним как getElementsByName(), или по аттрибуту, получишь массив, и каждый циклом while обработаешь и скроешь!

Спустя 25 минут, 8 секунд (21.10.2011 - 14:01) killer8080 написал(а):
tanya12345
для групповой идентификации можно использовать атрибут класс. Если используешь jQuery задача предельно упрощается.
onclick="$('.must_delete').hide()"
onclick="$('.must_delete').show()"


А вообще код у тебя очень кривой, делать такие сложные запросы в цикле - это зло. Такие задачи должны решаться одним запросом, например
Свернутый текст
SELECT SQL_CALC_FOUND_ROWS
`s`.`name`,`kat`.`kati` , `v`.`razn`, `v`.`times`, `v`.`id`, `v`.`datas`, `kr`.`names`, `p`.`page`
FROM `sait` `s`
INNER JOIN `kategorii` `kat` ON `kat`.`id`=`s`.`kategory`
INNER JOIN `vest` `v` ON `v`.`saitid`=`s`.`id`
INNER JOIN `krit_sobytiy` `kr` ON `kr`.`id`=`v`.`sobytie`
INNER JOIN `pages` `p` ON `p`.`id`=`v`.`idpages`
WHERE `v`.`ne_pokaz`=0
ORDER BY `kr`.`names`

и избегай mysql_num_rows в больших таблицах, слишком много ресурсов она жрёт.
Для подсчёта либо COUNT(*) для простых запросов или директива SQL_CALC_FOUND_ROWS для сложных. В последнем случае количество рядов можно узнать простым запросом
SELECT FOUND_ROWS()

после основного запроса.

Спустя 5 часов, 52 минуты, 59 секунд (21.10.2011 - 19:54) tanya12345 написал(а):
Изменила код,чтобы динамически формировался id блока,но все равно код на скрытие/отобржение не работает.Чего не хватает? То, что моего ума - это я понимаю, но я имею ввиду в программном коде??? Подскажите

<html>
<head>
<title>
Страница оповещений</title>
<link
rel="stylesheet" type="text/css" href="adm.css" />
</head>
<body>
<div
id="main">
<?php

include ("menu.php");
?>
<div
id="cont">
<table
width="100%" border="1" cellspacing="0" cellpadding="5">
<tr
style="text-align:center;">
<td>
Страница</td>
<td>
Критическое событие</td>
<td>
Дата</td>
</tr>
<?php

$must_delete=array();
$i=0;
require("class.php");
//Выбираю список сайтов:
$resa = mysql_query("SELECT * FROM sait") or die(mysql_error());
while ($mass = mysql_fetch_assoc($resa))
{
$ap=$mass['id'];
$res = mysql_query("SELECT `sait`.`name`,`kategorii`.`kati` , `vest`.`razn`,`vest`.`times`,`vest`.`id`,`vest`.`datas`, `krit_sobytiy`.`names`,`pages`.`page` FROM `sait`,`kategorii` ,`vest`, `krit_sobytiy`,`pages` WHERE `sait`.`id`='" .$ap."' AND `sait`.`id`=`vest`.`saitid` AND `kategorii`.`id`=`sait`.`kategory` AND `krit_sobytiy`.`id`=`vest`.`sobytie` AND `vest`.`idpages`=`pages`.`id` AND `vest`.`ne_pokaz`=0 ORDER BY `krit_sobytiy`.`names`") or die(mysql_error());
$a=mysql_num_rows($res);
if ($a==0)
{
}

else
{
//Делаю строку с именем сайта
echo "<tr>";?>
<td
colspan=5 >
<?php

echo $mass['name'];
?>
<button
onclick="document.getElementById('.$must_delete[$i].').style.display='none'">hiden</button>
<button
onclick="document.getElementById('.$must_delete[$i].').style.display=''">show</button>
</td>
</tr>
<div
id='.$must_delete[$i].'>
<?php


//Вывожу в цикле все строки, которые связанные с выбранным сайтом
while ($mass = mysql_fetch_assoc($res))
{
?>
<tr >
<?php

echo "<td >" . $mass['page'] . "</td>";
echo "<td >" ;
echo "+";
echo $mass['razn'];
echo "</td>" ;
echo "<td >" . $mass['names'] . "</td>";
echo "<td >" . $mass['datas'] ." " . $mass['times'] ."</td>";
echo "</tr>";
}
echo "</div>";
$i=$i+1;
?>
</tr>
<?php

}
}

?>
</table>
</div>
</div>
</body>
</html>


Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.