[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Скрыть/показать строки в таблице
tkir
Нужно при нажатии на строку (в нижней части таблицы) показывать/скрывать все скрытые строки.



<table>
<
tbody>
$tr_earning=0;
while($earning=mysql_fetch_array($sql_earning,MYSQL_ASSOC)){
if($tr_earning<14)echo '<tr id="">';
else echo '<tr id="tr_earning_shadow" style="display:none">';
echo "<td style='text-align:left;'>text1</td>";
echo "<td class='blue'>$earning[ticker]</td>";
echo "<td style='text-align:left;'>$earning[company]</td>";
echo '</tr>';
$tr_earning++;
}
$xml_tr_earning=<<<XML
<?xml version="1.0" encoding="UTF-8"?>
<tr style="cursor:hand; cursor:pointer" onclick="if(document.getElementById('tr_earning_shadow').style.display=='none') document.getElementById('tr_earning_shadow').style.display='table-row'; else document.getElementById('tr_earning_shadow').style.display='none';">
<td>Все отчеты</td>
</tr>

XML;
echo $xml_tr_earning;
</
tbody>
</
table>


В моем скрипте показывает почему-то только 1 строку
Помогите, пожалуйста найти ошибку



Спустя 1 час, 41 минута, 16 секунд (1.05.2012 - 12:59) sergeiss написал(а):
Если ты хочешь, чтобы в этом коде кто-то разбирался, то покажи, что у тебя в итоге получается, т.е. покажи код сформированной страницы.

Спустя 1 час, 7 минут, 8 секунд (1.05.2012 - 14:06) tkir написал(а):
Убрал все лишнее для понятности (это рабочий код)


<table>
<?php

$tr=0;
while($tr<5){
if($tr<2)echo '<tr id="">';
else echo '<tr id="hide" style="display:none">';
echo "<td>$tr</td>";
echo '</tr>';
$tr++;
}
echo $xml=<<<XML


<?xml version="1.0" encoding="UTF-8"?>
<tr style="cursor:hand; cursor:pointer"
onclick="[js]document.getElementById('hide').style.display='table-row';[/js]
">


<td>Все строки</td>
</tr>

XML;
?>
</table>


Спустя 1 час, 58 минут (1.05.2012 - 16:04) sergeiss написал(а):
Ты покажи тот код, который у тебя в браузере уже получается! В любом браузере можно посмотреть и скопировать код.
А так вот думать и гадать, что же у тебя будет в результате выполнения ПХП-кода... Думаешь, многие захотят это делать?

Спустя 8 минут, 11 секунд (1.05.2012 - 16:12) tkir написал(а):
Вот исходный код страницы:

<table>
<tr
id="">
<td>
0</td>
</tr>
<tr
id="">
<td>
1</td>
</tr>
<tr
id="hide" style="display:none">
<td>
2</td>
</tr>
<tr
id="hide" style="display:none">
<td>
3</td>
</tr>
<tr
id="hide" style="display:none">
<td>
4</td>
</tr>

<?xml version
="1.0" encoding="UTF-8"?>
<tr
style="cursor:hand; cursor:pointer"
onclick="document.getElementById('hide').style.display='table-row';
"
>
<td>
Все строки</td>
</tr>
</table>

Спустя 1 час, 11 минут, 25 секунд (1.05.2012 - 17:24) sergeiss написал(а):
Цитата (tkir @ 1.05.2012 - 13:18)
В моем скрипте показывает почему-то только 1 строку

Вот когда ты показал готовый код, то всё становится понятным smile.gif У тебя же несколько элементов с одним и тем же id! Браузер получает идентификатор одного из них по запросу document.getElementById('hide'), а остальные даже и не думает искать.
Если ты хочешь вот так скрывать/показывать, то сделай функцию, которая будет это делать. И эта функция должна знать все id, которые должны быть разными, отличающимися друг от друга.

Спустя 1 день, 2 часа, 22 минуты, 37 секунд (2.05.2012 - 19:46) tkir написал(а):
Всем спасибо, решение нашел, задавая уникальный id:

<?php
$show=2; //Количество показываемых строк
$tr=1;
while($tr<6){
if($tr<$show)echo '<tr id="">';
else echo '<tr id="hide'.$tr.'" style="display:none">';
echo "<td>$tr</td>";
echo '</tr>';
$tr++;
}
echo $xml=<<<XML
<?xml version="1.0" encoding="UTF-8"?>
<tr style="cursor:hand; cursor:pointer" onclick="
for(var i=
$show+1;i<=$tr;i=i+1){
document.getElementById('hide'+i).style.display='table-row';
}
">
<td>Все строки</td>
</tr>

XML;
?>
Быстрый ответ:

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