powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / как сделать список раскрывающимся?
25 сообщений из 74, страница 2 из 3
как сделать список раскрывающимся?
    #38655209
PHucker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
получилось вот так. и слишком медленно работает. а то и зависает((
...
Рейтинг: 0 / 0
как сделать список раскрывающимся?
    #38655210
PHucker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
оказывается не зависает, а не скрывается :D
...
Рейтинг: 0 / 0
как сделать список раскрывающимся?
    #38655212
PHucker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
получается потихоньку)) только вот когда все столбцы без интервала времени стоят, когда нажимаю сгруппировать, он показывает пустую таблицу. ((
...
Рейтинг: 0 / 0
как сделать список раскрывающимся?
    #38655214
PHucker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все работает!)) только вот скрыть не получается(
...
Рейтинг: 0 / 0
как сделать список раскрывающимся?
    #38655216
PHucker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот что получилось))
<!DOCTYPE html>
<html>
<head>
<style>
body{

}
table {
background-color: #D5EEEE;
border-collapse:collapse;
font:400 10pt/19px Arial,'MS Sans Serif','sans-serif';
}
table th {
background:#4682B4;
color:#fff;
}
table td, th {
padding:3px;
border:1px solid #D3D3D3;
}
.treetable label a{
cursor:pointer;
color:#fff;
font-weight:bold;
padding-left:16px;
}
.treetable tr {
display:none;
}
.treetable thead tr {
display:table-row;
}
.treetable .lev1 {
background:#6E9ECA;
display:table-row;
}
input[type="checkbox"]{
display:none;
}
input + a {
background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAALCAIAAAAmzuBxAAAACXBIWXMAAAsSAAALEgHS3X78AAAAkElEQVQYlXWOvRWDQAyDv/DYK2wQSro8OkpGuRFcUjJCRmEE0TldCpsjPy9qzj7Jki62Pgh4vnqbbbEWuN+use/PlArwHccWGg780psENGFY6W4YgxZIAM339WmT3m397YYxxn6aASslFfVotYLTT3NwcuTKlFpNR2sdEak4acdKeafPlE2SZ7sw/1BEtX94AXYTVmyR94mPAAAAAElFTkSuQmCC)
no-repeat 0px 5px;
}
input:checked + a{
background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAALCAIAAAAmzuBxAAAACXBIWXMAAAsSAAALEgHS3X78AAAAeklEQVQYlX2PsRGDMAxFX3zeK9mAlHRcupSM4hFUUjJCRpI70VHIJr7D8BtJ977+SQ9Zf7isVG16WSQC0/D0OW/FqoBlDFkIVJ2xAhA8sI/NHbcYiFrPfI0fGklKagDx2F4ltdtaM0J9L3dxcVxi+zv62E+MwPs7c60dClRP6iug7wUAAAAASUVORK5CYII=)
no-repeat 0px 5px;
}
td+td+td {text-align:right;}
</style>
</head>
<body><center><script>
document.getElementById('cmdMakeGroup').disabled = false;
document.getElementById('cmdCollapseAll').disabled = false;
document.getElementById('cmdExpandAll').disabled = true;

function MakeGroupTable () {
var MyTable = document.getElementById('MyTable');
var rowCount = MyTable.rows.length;
var cellCount = MyTable.rows[1].cells.length;
var idx = 1;
var CurrentValue = '';

MyTable.className = 'treetable';

while (idx < rowCount) {
if (CurrentValue != MyTable.rows[idx].cells[0].innerHTML) {
CurrentValue = MyTable.rows[idx].cells[0].innerHTML;
MyTable.insertRow(idx);
MyTable.rows[idx].className = 'lev1';
for (i=0; i < cellCount; i++) {MyTable.rows[idx].insertCell(i);}
MyTable.rows[idx].cells[0].innerHTML = '<label><input type="checkbox"><a onclick="sh(this)">' + CurrentValue + '</a></label>';
} else {
MyTable.rows[idx].className = 'lev2';
MyTable.rows[idx].cells[0].innerHTML = ' ';
}
idx++;
rowCount = MyTable.rows.length;
}
document.getElementById('cmdMakeGroup').disabled = true;
document.getElementById('cmdCollapseAll').disabled = false;
document.getElementById('cmdExpandAll').disabled = false;
}

function ResetAll() {
var cs = document.getElementsByTagName('input');
for (i=0; i < cs.length; i++) {
if (cs[i].type == 'checkbox') {
cs[i].checked = false;
}
}
}

function ShowLevel(row,lv) {
var tBody = row.parentNode;
var i = row.rowIndex;
row = tBody.rows[i]; // Попытка перейти к следующей строке
while (row && row.className.substring(3)*1 > lv) {
if (row.className.substring(3)*1 == lv+1) {
row.style.display = 'table-row';
if ((row.querySelector('td input')) && row.querySelector('td input').checked) {
ShowLevel(row,lv+1);
}
}
i+=1;
row = tBody.rows[i];
}
}

function HideLevel(row,lv) {
var i = row.rowIndex;
var tBody = row.parentNode;
row = tBody.rows[i]; // Попытка перейти к следующей строке
while (row && row.className.substring(3)*1 > lv) {
row.style.display = 'none';
i+=1;
row = tBody.rows[i];
}
}

function sh(el) {
var row = el.parentNode.parentNode.parentNode;
var lv = row.className.substring(3)*1; // Уровень строки, циферка после 'lev'
if (row.querySelector('td input').checked) {
HideLevel(row,lv);
} else {
ShowLevel(row,lv);
}
}

function SwapAll(b) {
var tbl = document.getElementsByClassName('treetable')[0];
for (i=1; i < tbl.rows.length; i++) {
if (tbl.rows[i].className != 'lev1') {
if (b) {tbl.rows[i].style.display = 'table-row';}
else {tbl.rows[i].style.display = 'none';}
}

if (tbl.rows[i].querySelector('td input')) {tbl.rows[i].querySelector('td input').checked = b;}
}
}
</script>
<button onclick="MakeGroupTable();" id="cmdMakeGroup">Сгруппировать</button>
<button onclick="SwapAll(true);" id="cmdCollapseAll" disabled>Свернуть все</button>
<button onclick="SwapAll(true);" id="cmdExpandAll" disabled>Развернуть все</button>
<br><br>
<table id="MyTable">
<col width=100> <col width=150>
<thead>
<tr>
<th>Номер Счетчика</th>
<th>ID</th>
<th>  Fields  </th>
<th>  Description  </th>
<th>  <form action="<?=$_SERVER["PHP_SELF"]?>" method="get">
Введите дни(от 1 до 30):
<input type="text" name="name"><br>
<input type = "submit" value = "Считать">
<a href="example.php" ><input type = "button" value = "Сброс" onclick=""></a>
</form> </th>
<th>  Значение  </th>
</tr>
</thead>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>

</tr>



<?php
$connect = mysql_connect("192.168.144.6:6299", "report_user", "661610") or die("Ошибка соединения!");
mysql_select_db("smartvend", $connect);


if (isset($_GET["name"]))
{
$name = $_GET["name"];
$query ="SELECT history.MeterNum, fields.ID, history.FieldName, fields.Description, history.ExecDate, history.FieldValue
FROM
amr_fields fields, amr_read_history history
WHERE
fields.ID=history.FieldName AND ExecDate>= SUBDATE(CURRENT_DATE, INTERVAL $name DAY)
ORDER BY ExecDate ASC";
}
else {
$result = mysql_query("SELECT history.MeterNum, fields.ID, history.FieldName, fields.Description, history.ExecDate, history.FieldValue
FROM
amr_fields fields, amr_read_history history
WHERE
fields.ID=history.FieldName AND ExecDate>= '(CURDATE()'
ORDER BY MeterNum asc, execdate DESC",$connect);

while ($data = mysql_fetch_row($result))
{
echo"<tr>";;
echo"<td>{$data[0]}</td>";
echo"<td>{$data[1]}</td>";
echo"<td>{$data[2]}</td>";
echo"<td>{$data[3]}</td>";
echo"<td>{$data[4]}</td>";
echo"<td>{$data[5]}</td>";

echo"</tr>";

}
}

$sql = mysql_query($query) or die("<p>Выберите дни</p>");

while ($data = mysql_fetch_row($sql))
{
echo"<tr>";
echo"<td>{$data[0]}</td>";
echo"<td>{$data[1]}</td>";
echo"<td>{$data[2]}</td>";
echo"<td>{$data[3]}</td>";
echo"<td>{$data[4]}</td>";
echo"<td>{$data[5]}</td>";
echo"</tr>";
}
mysql_close();


?>
</table>

</center>
</body>
</html>
...
Рейтинг: 0 / 0
как сделать список раскрывающимся?
    #38655217
PHucker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
только обратно не скрывается(. попробовал посмотреть ваш код, получится ли у вас скрыть. оказалось что у вас тоже не скрывается(
...
Рейтинг: 0 / 0
как сделать список раскрывающимся?
    #38655218
PHucker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
свернуть и свернуть все не работает. (
...
Рейтинг: 0 / 0
как сделать список раскрывающимся?
    #38655242
Фотография user89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PHuckerтолько обратно не скрывается(. попробовал посмотреть ваш код, получится ли у вас скрыть. оказалось что у вас тоже не скрывается(
свернуть и свернуть все не работает. (В моем примере работает   Смотрим еще раз 16084604   Сначала идет CSS, потом <body>, и только потом <script>

У вас здесь 16088948   скрипт расположен наверху. Переместите содержимое <script>...</script> в самый низ, после body, и всё заработает.
...
Рейтинг: 0 / 0
как сделать список раскрывающимся?
    #38655294
PHucker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
после body сгруппировать не работает. поэтому пришлось вверх переместить :D вот посмотрите еще)):
<!DOCTYPE html>
<html>
<head>
<style>

table {
background-color: #D5EEEE;
border-collapse:collapse;
font:400 10pt/19px Arial,'MS Sans Serif','sans-serif';
}
table th {
background:#4682B4;
color:#fff;
}
table td, th {
padding:3px;
border:1px solid #D3D3D3;
}
.treetable label a{
cursor:pointer;
color:#fff;
font-weight:bold;
padding-left:16px;
}
.treetable tr {
display:none;
}
.treetable thead tr {
display:table-row;
}
.treetable .lev1 {
background:#6E9ECA;
display:table-row;
}
input[type="checkbox"]{
display:none;
}
input + a {
background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAALCAIAAAAmzuBxAAAACXBIWXMAAAsSAAALEgHS3X78AAAAkElEQVQYlXWOvRWDQAyDv/DYK2wQSro8OkpGuRFcUjJCRmEE0TldCpsjPy9qzj7Jki62Pgh4vnqbbbEWuN+use/PlArwHccWGg780psENGFY6W4YgxZIAM339WmT3m397YYxxn6aASslFfVotYLTT3NwcuTKlFpNR2sdEak4acdKeafPlE2SZ7sw/1BEtX94AXYTVmyR94mPAAAAAElFTkSuQmCC)
no-repeat 0px 5px;
}
input:checked + a{
background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAALCAIAAAAmzuBxAAAACXBIWXMAAAsSAAALEgHS3X78AAAAeklEQVQYlX2PsRGDMAxFX3zeK9mAlHRcupSM4hFUUjJCRpI70VHIJr7D8BtJ977+SQ9Zf7isVG16WSQC0/D0OW/FqoBlDFkIVJ2xAhA8sI/NHbcYiFrPfI0fGklKagDx2F4ltdtaM0J9L3dxcVxi+zv62E+MwPs7c60dClRP6iug7wUAAAAASUVORK5CYII=)
no-repeat 0px 5px;
}
td+td+td {text-align:right;}
</style>
</head>
<body><center>

<button onclick="MakeGroupTable();" id="cmdMakeGroup">Сгруппировать</button>
<button onclick="SwapAll(false);" id="cmdCollapseAll" disabled>Свернуть все</button>
<button onclick="SwapAll(true);" id="cmdExpandAll" disabled>Развернуть все</button>
<a href="extended.php"><button >Сгруппировать по дате</button></a>
<br><br>
<table id="MyTable">

<col width=100> <col width=150>
<thead>
<tr>
<th> Номер Счетчика </th>
<th> ID </th>
<th>  Fields  </th>
<th>  Description  </th>
<th>  <form action="<?=$_SERVER["PHP_SELF"]?>" method="get">
Введите дни(от 1 до 30):
<input type="text" name="name"><br>
<input type = "submit" value = "Считать">
<a href="example.php" ><input type = "button" value = "Сброс" onclick=""></a>
</form> </th>
<th>  Значение  </th>
</tr>
</thead>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>

</tr>



<?php
$connect = mysql_connect("192.168.144.6:6299", "report_user", "661610") or die("Ошибка соединения!");
mysql_select_db("smartvend", $connect);


if (isset($_GET["name"]))
{
$name = $_GET["name"];
$query ="SELECT history.MeterNum, fields.ID, history.FieldName, fields.Description, history.ExecDate, history.FieldValue
FROM
amr_fields fields, amr_read_history history
WHERE
fields.ID=history.FieldName AND ExecDate>= SUBDATE(CURRENT_DATE, INTERVAL $name DAY)
ORDER BY MeterNum asc, ExecDate ASC";
}
else {
$result = mysql_query("SELECT history.MeterNum, fields.ID, history.FieldName, fields.Description, history.ExecDate, history.FieldValue
FROM
amr_fields fields, amr_read_history history
WHERE
fields.ID=history.FieldName AND ExecDate>= '(CURDATE()'
ORDER BY MeterNum asc, execdate DESC",$connect);

while ($data = mysql_fetch_row($result))
{
echo"<tr>";;
echo"<td>{$data[0]}</td>";
echo"<td>{$data[1]}</td>";
echo"<td>{$data[2]}</td>";
echo"<td>{$data[3]}</td>";
echo"<td>{$data[4]}</td>";
echo"<td>{$data[5]}</td>";

echo"</tr>";

}
}

$sql = mysql_query($query) or die("<p></p>");

while ($data = mysql_fetch_row($sql))
{
echo"<tr>";
echo"<td>{$data[0]}</td>";
echo"<td>{$data[1]}</td>";
echo"<td>{$data[2]}</td>";
echo"<td>{$data[3]}</td>";
echo"<td>{$data[4]}</td>";
echo"<td>{$data[5]}</td>";
echo"</tr>";
}
mysql_close();


?>
</table>

</center>
</body><script>
document.getElementById('cmdMakeGroup').disabled = false;
document.getElementById('cmdCollapseAll').disabled = true;
document.getElementById('cmdExpandAll').disabled = true;

function MakeGroupTable () {
var MyTable = document.getElementById('MyTable');
var rowCount = MyTable.rows.length;
var cellCount = MyTable.rows[1].cells.length;
var idx = 1;
var CurrentValue = '';

MyTable.className = 'treetable';

while (idx < rowCount) {
if (CurrentValue != MyTable.rows[idx].cells[0].innerHTML) {
CurrentValue = MyTable.rows[idx].cells[0].innerHTML;
MyTable.insertRow(idx);
MyTable.rows[idx].className = 'lev1';
for (i=0; i < cellCount; i++) {MyTable.rows[idx].insertCell(i);}
MyTable.rows[idx].cells[0].innerHTML = '<label><input type="checkbox"><a onclick="sh(this)">' + CurrentValue + '</a></label>';
} else {
MyTable.rows[idx].className = 'lev2';
MyTable.rows[idx].cells[0].innerHTML = ' ';
}
idx++;
rowCount = MyTable.rows.length;
}
document.getElementById('cmdMakeGroup').disabled = true;
document.getElementById('cmdCollapseAll').disabled = false;
document.getElementById('cmdExpandAll').disabled = false;
}

function ResetAll() {
var cs = document.getElementsByTagName('input');
for (i=0; i < cs.length; i++) {
if (cs[i].type == 'checkbox') {
cs[i].checked = false;
}
}
}

function ShowLevel(row,lv) {
var tBody = row.parentNode;
var i = row.rowIndex;
row = tBody.rows[i]; // Попытка перейти к следующей строке
while (row && row.className.substring(3)*1 > lv) {
if (row.className.substring(3)*1 == lv+1) {
row.style.display = 'table-row';
if ((row.querySelector('td input')) && row.querySelector('td input').checked) {
ShowLevel(row,lv+1);
}
}
i+=1;
row = tBody.rows[i];
}
}

function HideLevel(row,lv) {
var i = row.rowIndex;
var tBody = row.parentNode;
row = tBody.rows[i]; // Попытка перейти к следующей строке
while (row && row.className.substring(3)*1 > lv) {
row.style.display = 'none';
i+=1;
row = tBody.rows[i];
}
}

function sh(el) {
var row = el.parentNode.parentNode.parentNode;
var lv = row.className.substring(3)*1; // Уровень строки, циферка после 'lev'
if (row.querySelector('td input').checked) {
HideLevel(row,lv);
} else {
ShowLevel(row,lv);
}
}

function SwapAll(b) {
var tbl = document.getElementsByClassName('treetable')[0];
for (i=1; i < tbl.rows.length; i++) {
if (tbl.rows[i].className != 'lev1') {
if (b) {tbl.rows[i].style.display = 'table-row';}
else {tbl.rows[i].style.display = 'none';}
}

if (tbl.rows[i].querySelector('td input')) {tbl.rows[i].querySelector('td input').checked = b;}
}
}
</script>
</html>
...
Рейтинг: 0 / 0
как сделать список раскрывающимся?
    #38655472
Фотография user89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PHucker,

я Ваш код скопировал. Всё нормально, скрипт внизу, кнопки работают.
GIF. Последовательное нажатие Сгруппировать - Развернуть все - Свернуть все

А скрипт должен быть внизу. Об этом много написано в гугле, да и здесь на форуме была тема (сайт неправильно работал, пока скрипт не переместили вниз).
Еще попробуйте закрывающий тег </body> переместить после закрывающего тега </script>, чтобы было так:
Код: html
1.
2.
3.
</script>
</body>
</html>
...
Рейтинг: 0 / 0
как сделать список раскрывающимся?
    #38655500
PHucker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
у вас работает у меня нет(( может из-за того что слишком много записей? я попробовал сократить записи и сгруппировать, работает. а почему свернуть не работает у меня? помогите пожалуйста
...
Рейтинг: 0 / 0
как сделать список раскрывающимся?
    #38655559
Фотография user89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PHucker,

зависит от сортировки, от объема - нет (у меня в одном проекте 9 тыс. записей почти без задержек).
В принципе, кнопка Сгруппировать не нужна, её можно вообще удалить, и сделать группировку сразу в body
Код: html
1.
<body onload="MakeGroupTable()">


В функции SwapAll , которая отвечает за массовое сворачивание, разворачивание, сделать alert . Что он покажет?
Код: javascript
1.
2.
3.
4.
function SwapAll(b) {
 var tbl = document.getElementsByClassName('treetable')[0];
alert (tbl);
...


По идее, лучше всего отлаживать в Мозилле (нажать F12 , посмотреть ошибки в Консоле , или потрудиться в Отладчике )
alert - тоже сойдет для простой отладки на начальных этапах...
...
Рейтинг: 0 / 0
как сделать список раскрывающимся?
    #38655589
PHucker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо что отзываетесь. Но не реагирует(. то есть я нажимаю на "Сгруппировать" клик и нет реакции. А давайте сделаем так: я скрипт обратно вверх и сделаем так чтобы кнопка "свернуть" работало?)
...
Рейтинг: 0 / 0
как сделать список раскрывающимся?
    #38655617
PHucker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
разворачиваю и знак + все равно остается.
...
Рейтинг: 0 / 0
как сделать список раскрывающимся?
    #38655658
Фотография user89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PHucker,

знаки + − меняются в зависимости от CSS-свойства input:checked . Работает даже в IE9 (проверьте, нет ли режима совместимости). Уберите display:none; чтобы посмотреть на "галочки"
Код: css
1.
2.
3.
input[type="checkbox"]{
 display:none;
}


А отладка через консоль или alert обязательно нужна.
...
Рейтинг: 0 / 0
как сделать список раскрывающимся?
    #38655673
PHucker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
user89,

появился "реальный" checkbox)) отмечаю птичкой появляется знак -. и работает сворачивание. без галочки не работает.
...
Рейтинг: 0 / 0
как сделать список раскрывающимся?
    #38655750
Фотография user89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PHucker,

щелкать надо не в сам CheckBox , а левее - в само наименование (курсор должен принять символ руки).

Последнее, что я могу сделать. Выложите "живой" HTML страницы. Мозилла точно умеет делать (вроде через обычное сохранение страницы)
То, что было выше 16089121 , это не "живой" HTML. Не должно быть никаких <php , $data и прочих серверных вставок.
Нужно содержимое текстовой страницы с данными.

Код будет длинный, поэтому оберните в spoiler
...
Рейтинг: 0 / 0
как сделать список раскрывающимся?
    #38655753
Фотография user89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PHucker,

щелкать надо не в сам CheckBox , а правее - в само наименование (курсор должен принять символ руки).

Последнее, что я могу сделать. Выложите "живой" HTML страницы. Мозилла точно умеет делать (вроде через обычное сохранение страницы)
То, что было выше 16089121 , это не "живой" HTML. Не должно быть никаких <php , $data и прочих серверных вставок.
Нужно содержимое текстовой страницы с данными.

Код будет длинный, поэтому оберните в spoiler
...
Рейтинг: 0 / 0
как сделать список раскрывающимся?
    #38655765
PHucker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
<!DOCTYPE html>
<html>
<head>
<style>

table {
background-color: #D5EEEE;
border-collapse:collapse;
font:400 10pt/19px Arial,'MS Sans Serif','sans-serif';
}
table th {
background:#4682B4;
color:#fff;
}
table td, th {
padding:3px;
border:1px solid #D3D3D3;
}
.treetable label a{
cursor:pointer;
color:#fff;
font-weight:bold;
padding-left:16px;
}
.treetable tr {
display:none;
}
.treetable thead tr {
display:table-row;
}
.treetable .lev1 {
background:#6E9ECA;
display:table-row;
}
input[type="checkbox"]{
display:none;
}
input + a {
background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAALCAIAAAAmzuBxAAAACXBIWXMAAAsSAAALEgHS3X78AAAAkElEQVQYlXWOvRWDQAyDv/DYK2wQSro8OkpGuRFcUjJCRmEE0TldCpsjPy9qzj7Jki62Pgh4vnqbbbEWuN+use/PlArwHccWGg780psENGFY6W4YgxZIAM339WmT3m397YYxxn6aASslFfVotYLTT3NwcuTKlFpNR2sdEak4acdKeafPlE2SZ7sw/1BEtX94AXYTVmyR94mPAAAAAElFTkSuQmCC)
no-repeat 0px 5px;
}
input:checked + a{
background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAsAAAALCAIAAAAmzuBxAAAACXBIWXMAAAsSAAALEgHS3X78AAAAeklEQVQYlX2PsRGDMAxFX3zeK9mAlHRcupSM4hFUUjJCRpI70VHIJr7D8BtJ977+SQ9Zf7isVG16WSQC0/D0OW/FqoBlDFkIVJ2xAhA8sI/NHbcYiFrPfI0fGklKagDx2F4ltdtaM0J9L3dxcVxi+zv62E+MwPs7c60dClRP6iug7wUAAAAASUVORK5CYII=)
no-repeat 0px 5px;
}
td+td+td {text-align:right;}
</style>
</head>
<body><center>

<button onclick="MakeGroupTable();" id="cmdMakeGroup">Сгруппировать</button>
<button onclick="SwapAll(false);" id="cmdCollapseAll" disabled>Свернуть все</button>
<button onclick="SwapAll(true);" id="cmdExpandAll" disabled>Развернуть все</button>
<a href="extended.php"><button >Сгруппировать по дате</button></a>
<br><br>
<table id="MyTable">

<col width=100> <col width=150>
<thead>
<tr>
<th> Номер Счетчика </th>
<th> ID </th>
<th>  Fields  </th>
<th>  Description  </th>
<th>  <form action="<?=$_SERVER["PHP_SELF"]?>" method="get">
Введите дни(от 1 до 30):
<input type="text" name="name"><br>
<input type = "submit" value = "Считать">
<a href="example.php" ><input type = "button" value = "Сброс" onclick=""></a>
</form> </th>
<th>  Значение  </th>
</tr>
</thead>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>

</tr>



<?php
$connect = mysql_connect("192.168.144.6:6299", "report_user", "661610") or die("Ошибка соединения!");
mysql_select_db("smartvend", $connect);


if (isset($_GET["name"]))
{
$name = $_GET["name"];
$query ="SELECT history.MeterNum, fields.ID, history.FieldName, fields.Description, history.ExecDate, history.FieldValue
FROM
amr_fields fields, amr_read_history history
WHERE
fields.ID=history.FieldName AND ExecDate>= SUBDATE(CURRENT_DATE, INTERVAL $name DAY)
ORDER BY MeterNum asc, ExecDate ASC";
}
else {
$result = mysql_query("SELECT history.MeterNum, fields.ID, history.FieldName, fields.Description, history.ExecDate, history.FieldValue
FROM
amr_fields fields, amr_read_history history
WHERE
fields.ID=history.FieldName AND ExecDate>= '(CURDATE()'
ORDER BY MeterNum asc, execdate DESC",$connect);

while ($data = mysql_fetch_row($result))
{
echo"<tr>";;
echo"<td>{$data[0]}</td>";
echo"<td>{$data[1]}</td>";
echo"<td>{$data[2]}</td>";
echo"<td>{$data[3]}</td>";
echo"<td>{$data[4]}</td>";
echo"<td>{$data[5]}</td>";

echo"</tr>";

}
}

$sql = mysql_query($query) or die("<p></p>");

while ($data = mysql_fetch_row($sql))
{
echo"<tr>";
echo"<td>{$data[0]}</td>";
echo"<td>{$data[1]}</td>";
echo"<td>{$data[2]}</td>";
echo"<td>{$data[3]}</td>";
echo"<td>{$data[4]}</td>";
echo"<td>{$data[5]}</td>";
echo"</tr>";
}
mysql_close();


?>
</table>

</center>
<script>
document.getElementById('cmdMakeGroup').disabled = false;
document.getElementById('cmdCollapseAll').disabled = true;
document.getElementById('cmdExpandAll').disabled = true;

function MakeGroupTable () {
var MyTable = document.getElementById('MyTable');
var rowCount = MyTable.rows.length;
var cellCount = MyTable.rows[1].cells.length;
var idx = 1;
var CurrentValue = '';

MyTable.className = 'treetable';

while (idx < rowCount) {
if (CurrentValue != MyTable.rows[idx].cells[0].innerHTML) {
CurrentValue = MyTable.rows[idx].cells[0].innerHTML;
MyTable.insertRow(idx);
MyTable.rows[idx].className = 'lev1';
for (i=0; i < cellCount; i++) {MyTable.rows[idx].insertCell(i);}
MyTable.rows[idx].cells[0].innerHTML = '<label><input type="checkbox"><a onclick="sh(this)">' + CurrentValue + '</a></label>';
} else {
MyTable.rows[idx].className = 'lev2';
MyTable.rows[idx].cells[0].innerHTML = ' ';
}
idx++;
rowCount = MyTable.rows.length;
}
document.getElementById('cmdMakeGroup').disabled = true;
document.getElementById('cmdCollapseAll').disabled = false;
document.getElementById('cmdExpandAll').disabled = false;
}

function ResetAll() {
var cs = document.getElementsByTagName('input');
for (i=0; i < cs.length; i++) {
if (cs[i].type == 'checkbox') {
cs[i].checked = false;
}
}
}

function ShowLevel(row,lv) {
var tBody = row.parentNode;
var i = row.rowIndex;
row = tBody.rows[i]; // Попытка перейти к следующей строке
while (row && row.className.substring(3)*1 > lv) {
if (row.className.substring(3)*1 == lv+1) {
row.style.display = 'table-row';
if ((row.querySelector('td input')) && row.querySelector('td input').checked) {
ShowLevel(row,lv+1);
}
}
i+=1;
row = tBody.rows[i];
}
}

function HideLevel(row,lv) {
var i = row.rowIndex;
var tBody = row.parentNode;
row = tBody.rows[i]; // Попытка перейти к следующей строке
while (row && row.className.substring(3)*1 > lv) {
row.style.display = 'none';
i+=1;
row = tBody.rows[i];
}
}

function sh(el) {
var row = el.parentNode.parentNode.parentNode;
var lv = row.className.substring(3)*1; // Уровень строки, циферка после 'lev'
if (row.querySelector('td input').checked) {
HideLevel(row,lv);
} else {
ShowLevel(row,lv);
}
}

function SwapAll(b) {
var tbl = document.getElementsByClassName('treetable')[0];
for (i=1; i < tbl.rows.length; i++) {
if (tbl.rows[i].className != 'lev1') {
if (b) {tbl.rows[i].style.display = 'table-row';}
else {tbl.rows[i].style.display = 'none';}
}

if (tbl.rows[i].querySelector('td input')) {tbl.rows[i].querySelector('td input').checked = b;}
}
}
</script>
</body>
</html>
PS когда скрипт находится "выше", все здорово работает, только не сворачивается. вот и вся проблема. а когда снизу, то сгруппировать не получается и свернуть тоже(
...
Рейтинг: 0 / 0
как сделать список раскрывающимся?
    #38655869
Фотография user89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PHucker,

я же просил HTML c данными. А тут серверный блок.
Вместо этого, нужны "живые" данные в <tr> <td>, которые отображаются на с странице
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
<?php
 $connect = mysql_connect("192.168.144.6:6299", "report_user", "661610") or die("Ошибка соединения!");
 mysql_select_db("smartvend", $connect);

if (isset($_GET["name"]))
{
 $name = $_GET["name"];
 $query ="SELECT history.MeterNum, fields.ID, history.FieldName, fields.Description, history.ExecDate, history.FieldValue
 FROM
 amr_fields fields, amr_read_history history
 WHERE
 fields.ID=history.FieldName AND ExecDate>= SUBDATE(CURRENT_DATE, INTERVAL $name DAY) 
 ORDER BY MeterNum asc, ExecDate ASC";
}
else {
 $result = mysql_query("SELECT history.MeterNum, fields.ID, history.FieldName, fields.Description, history.ExecDate, history.FieldValue 
 FROM 
 amr_fields fields, amr_read_history history 
 WHERE 
 fields.ID=history.FieldName AND ExecDate>= '(CURDATE()'
 ORDER BY MeterNum asc, execdate DESC",$connect);

 while ($data = mysql_fetch_row($result))
 {
 echo"<tr>";;
 echo"<td>{$data[0]}</td>";
 echo"<td>{$data[1]}</td>";
 echo"<td>{$data[2]}</td>";
 echo"<td>{$data[3]}</td>";
 echo"<td>{$data[4]}</td>";
 echo"<td>{$data[5]}</td>";

 echo"</tr>";

 } 
 }

$sql = mysql_query($query) or die("<p></p>");

while ($data = mysql_fetch_row($sql))
{
 echo"<tr>";
 echo"<td>{$data[0]}</td>"; 
 echo"<td>{$data[1]}</td>";
 echo"<td>{$data[2]}</td>";
 echo"<td>{$data[3]}</td>";
 echo"<td>{$data[4]}</td>";
 echo"<td>{$data[5]}</td>";
 echo"</tr>";
}
mysql_close();

 ?>

...
Рейтинг: 0 / 0
как сделать список раскрывающимся?
    #38656578
PHucker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я вас не понял)) и опять е понял))
...
Рейтинг: 0 / 0
как сделать список раскрывающимся?
    #38656631
Фотография user89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PHucker,

вместо блока
Код: php
1.
2.
3.
4.
5.
6.
<?php
 $connect = mysql_connect("192.168.144.6:6299", "report_user", "661610") or die("Ошибка соединения!");
 mysql_select_db("smartvend", $connect);
...
...
?>


мне нужно
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
<table id="MyTable">
<col width=100> <col width=150>
<tr> <td>Данные</td> <td>Данные</td> <td>Данные</td> <td>Данные</td> </tr>
<tr> <td>Данные</td> <td>Данные</td> <td>Данные</td> <td>Данные</td> </tr>
<tr> <td>Данные</td> <td>Данные</td> <td>Данные</td> <td>Данные</td> </tr>
<tr> <td>Данные</td> <td>Данные</td> <td>Данные</td> <td>Данные</td> </tr>
...
</table>

т.е. HTML страница, которую видит пользователь на экране.
Мозилла точно умеет сохранять в правильном виде. Приложите файл к сообщению в виде архива. Гляну.
...
Рейтинг: 0 / 0
как сделать список раскрывающимся?
    #38656804
PHucker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо!!! Вот :)
...
Рейтинг: 0 / 0
как сделать список раскрывающимся?
    #38656866
Фотография user89
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PHucker,

скачал я файл, а там PHP код :(

Попробуем такой вариант.
Выше Вы приводили хороший скриншот 16079301   Мне нужен HTML этого скриншота.
1. Выводим в Мозилле нашу страницу
2. Никакие кнопки не жмем
3. Сохраняем в формате HTML
Итого, в результате мы будем иметь не example.php , а example.html
Я этот example.html запущу у себя, и увижу таблицу, которую Вы привели выше 16079301
...
Рейтинг: 0 / 0
как сделать список раскрывающимся?
    #38656913
PHucker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот
...
Рейтинг: 0 / 0
25 сообщений из 74, страница 2 из 3
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / как сделать список раскрывающимся?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]