Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: как сделать список раскрывающимся?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Без описания
PHucker
Отправлено: 22 Мая, 2014 - 06:22:39
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Май 2014  


Помог: 0 раз(а)




Здравствуйте! Есть у меня таблица и задача которую трудновато мне решить. Допустим у меня в таблице есть один такой столбец который имеет много одинаковых значений. Пусть это значение будет числом 12. И это число при выводе очень много раз повторяется. И как сделать так, чтобы была кнопка и при клике раскрывались все значения числа 12? то есть как здесь:

<script>function showTooltip()
{
var myDiv = document.getElementById('tooltip');
if(myDiv.style.display == 'none')
{
myDiv.style.display = 'block';
} else {
myDiv.style.display = 'none';
}
return false;
}</script>
<button onclick=showTooltip()> Показать </button>
<div id=tooltip style='display: none'>

<li>Значение числа 12 №1</li>
<li>Значение числа 12 №2</li>
<li>Значение числа 12 №3</li>
<li>Значение числа 12 №4</li>

</div>
только эти данные берутся из БД в разном порядке. Потому что у меня стоит сортировка по времени.
 
 Top
PHucker
Отправлено: 26 Мая, 2014 - 06:08:41
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Май 2014  


Помог: 0 раз(а)




sos!!! есть кто?
 
 Top
Flash_PR
Отправлено: 26 Мая, 2014 - 08:42:51
Post Id



Посетитель


Покинул форум
Сообщений всего: 328
Дата рег-ции: Окт. 2013  
Откуда: Санкт-Петербург


Помог: 6 раз(а)




PHucker пишет:
sos!!! есть кто?


Есть, но задача непонятна. Сделать в таблице один столбец раскрываюшимся? С трудом представляю.


-----
Умные мысли приходят тогда, когда все глупости уже сделаны...
 
My status
 Top
PHucker
Отправлено: 26 Мая, 2014 - 10:17:19
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Май 2014  


Помог: 0 раз(а)




Я вас где-то встречал Улыбка. Вопрос по той же теме. Только проблема другая. Просто думаю что с такими задачами научусь быстрее программированию Улыбка
 
 Top
PHucker
Отправлено: 26 Мая, 2014 - 10:33:44
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Май 2014  


Помог: 0 раз(а)




вот в первом столбце есть значения. в нем есть много одинаковых. и нужно сделать кнопку для всех значений только по одной каждому. то есть когда нажать допустим
на 37130550488 то этот список раскрывался и выводились все 37130550488. и так дальше.
И значение других столбцов должно меняться соответственно этому столбцу.
Прикреплено изображение (Нажмите для увеличения)
Без имени-1 копия.JPG
 
 Top
Flash_PR
Отправлено: 26 Мая, 2014 - 11:12:15
Post Id



Посетитель


Покинул форум
Сообщений всего: 328
Дата рег-ции: Окт. 2013  
Откуда: Санкт-Петербург


Помог: 6 раз(а)




Эм, выскажу свое дилетанское мнение. Более знающие люди поправят если что.

Для каждого уникального значения делать свою таблицу, и ее скрывать-открывать. А как сделать это в одной таблице я не знаю...


-----
Умные мысли приходят тогда, когда все глупости уже сделаны...
 
My status
 Top
PHucker
Отправлено: 26 Мая, 2014 - 11:16:03
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Май 2014  


Помог: 0 раз(а)




или это трудно? а вы что посоветуете?
 
 Top
Flash_PR
Отправлено: 26 Мая, 2014 - 11:36:04
Post Id



Посетитель


Покинул форум
Сообщений всего: 328
Дата рег-ции: Окт. 2013  
Откуда: Санкт-Петербург


Помог: 6 раз(а)




PHucker пишет:
или это трудно?


Я не знаю. На данный момент я скажу что это невозможно, по крайней мере для меня, в рамках одной таблицы.

PHucker пишет:
а вы что посоветуете?

Я же написал, для каждого уникального значения делать свою таблицу, и ее скрывать-открывать.

CODE (html):
скопировать код в буфер обмена
  1.  
  2. <div>
  3. <table>
  4. <tr>
  5. <td>1111</td>
  6. <td>qqq</td>
  7. <td>www</td>
  8. </tr>
  9. <tr>
  10. <td>1111</td>
  11. <td>qqq222</td>
  12. <td>www222</td>
  13. </tr>
  14. </table>
  15. </div>
  16.  
  17. <div>
  18. <table>
  19. <tr>
  20. <td>2222</td>
  21. <td>zzz</td>
  22. <td>xxx</td>
  23. </tr>
  24. <tr>
  25. <td>2222</td>
  26. <td>ddd</td>
  27. <td>fff</td>
  28. </tr>
  29. </table>
  30. </div>
  31.  

(Отредактировано автором: 26 Мая, 2014 - 11:43:13)



-----
Умные мысли приходят тогда, когда все глупости уже сделаны...
 
My status
 Top
PHucker
Отправлено: 26 Мая, 2014 - 11:49:35
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Май 2014  


Помог: 0 раз(а)




хммм тупик Огорчение
 
 Top
Flash_PR
Отправлено: 26 Мая, 2014 - 12:05:05
Post Id



Посетитель


Покинул форум
Сообщений всего: 328
Дата рег-ции: Окт. 2013  
Откуда: Санкт-Петербург


Помог: 6 раз(а)




PHucker пишет:
хммм тупик Огорчение

а в чем тупик? Вроде дал направление.


-----
Умные мысли приходят тогда, когда все глупости уже сделаны...
 
My status
 Top
Panoptik
Отправлено: 26 Мая, 2014 - 12:09:58
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




каждой строке таблицы нужно давать класс - к примеру 'elem-12' где 12 этот ваш номер
и потом если у вас в таблице несколько строк подряд имеют тот же класс, то просто отображаете скрываете строки с этим классом


-----
Just do it
 
 Top
PHucker
Отправлено: 26 Мая, 2014 - 12:30:29
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Май 2014  


Помог: 0 раз(а)




Panoptik пишет:
каждой строке таблицы нужно давать класс - к примеру 'elem-12' где 12 этот ваш номер
и потом если у вас в таблице несколько строк подряд имеют тот же класс, то просто отображаете скрываете строки с этим классом


т.е я вытаскиваю из БД допустим значение 37130550470 и даю этому селекту какой-нибудь класс. и создаю кнопку с названием 37130550470, даю ему функцию которая будет скрывать\раскрывать?
(Добавление)
вот мой код
CODE (html):
скопировать код в буфер обмена
  1. <html>
  2.     <head>
  3.     <title>Extended Report</title>
  4.     <link href="css/frombase.css" type="text/css" rel="stylesheet">
  5.      </head>
  6.         <body>
  7.     <center>
  8.     <table border="1" height="" width="" id="table1">
  9.            
  10.              <tr >
  11.                 <td id="first">НомерСчетчика</td>
  12.                 <td id="first">ID</td>
  13.                 <td id="first">Fields</td>
  14.                 <td id="first">Description</td>
  15.                 <td id="first">
  16.  
  17.                         <form action="<?=$_SERVER["PHP_SELF"]?>" method="get">
  18.                             Введите дни(от 1 до 30):
  19.                             <input type="text" name="name"><br>
  20.                         <input type = "submit" value = "Считать">
  21.                         <input type = "button" value = "Сброс" onclick="">
  22.                         </form>
  23.                         </td>
  24.                 <td id="first">Значение</td>
  25.                
  26.              </tr>
  27.         <?php
  28.  $connect = mysql_connect("**********", "report_user", "*********")  or die("Ошибка соединения!");
  29.    mysql_select_db("smartvend", $connect);
  30.  
  31.  
  32. if (isset($_GET["name"]))
  33. {
  34.  $name = $_GET["name"];
  35.  $query ="SELECT history.MeterNum, fields.ID, history.FieldName, fields.Description, history.ExecDate, history.FieldValue
  36. FROM
  37. amr_fields fields, amr_read_history history
  38. WHERE
  39. fields.ID=history.FieldName AND ExecDate>= SUBDATE(CURRENT_DATE, INTERVAL $name DAY)
  40.  ORDER BY ExecDate ASC";
  41. }
  42. else {
  43.         $result = mysql_query("SELECT  history.MeterNum, fields.ID, history.FieldName, fields.Description, history.ExecDate, history.FieldValue
  44.                         FROM  
  45.                             amr_fields fields, amr_read_history history
  46.                         WHERE
  47.                             fields.ID=history.FieldName AND ExecDate>= '(CURDATE()'
  48.                             ORDER BY execdate DESC",$connect);
  49.                          
  50.         while ($data = mysql_fetch_row($result))
  51.         {
  52.             echo"<tr>";
  53.              echo"<td>{$data[0]}</td>";
  54.              echo"<td>{$data[1]}</td>";
  55.              echo"<td>{$data[2]}</td>";
  56.              echo"<td>{$data[3]}</td>";
  57.              echo"<td>{$data[4]}</td>";
  58.              echo"<td>{$data[5]}</td>";
  59.             echo"</tr>";
  60.         }    
  61.         }
  62.  
  63. $sql = mysql_query($query) or die("<p>Выберите дни</p>");
  64.  
  65. while ($data = mysql_fetch_row($sql))
  66. {
  67.   echo"<tr>";
  68.   echo"<td>{$data[0]}</td>";  
  69.   echo"<td>{$data[1]}</td>";
  70.   echo"<td>{$data[2]}</td>";
  71.   echo"<td>{$data[3]}</td>";
  72.   echo"<td>{$data[4]}</td>";
  73.   echo"<td>{$data[5]}</td>";
  74.   echo"</tr>";
  75. }
  76. mysql_close();
  77.  
  78.  
  79.     ?>
  80.     </table>
  81.     </center>
  82.         </body>
  83. </html>

где MeterNum это те значения которые выводятся(первый столбец).

и как все это сделать я не могу представить даже.
 
 Top
Flash_PR
Отправлено: 26 Мая, 2014 - 12:37:41
Post Id



Посетитель


Покинул форум
Сообщений всего: 328
Дата рег-ции: Окт. 2013  
Откуда: Санкт-Петербург


Помог: 6 раз(а)




PHucker пишет:
т.е я вытаскиваю из БД допустим значение 37130550470 и даю этому селекту какой-нибудь класс. и создаю кнопку с названием 37130550470, даю ему функцию которая будет скрывать\раскрывать?


Это у тебя еще все в базе?
Зачем делать тогда все эти скрытия закрытия?


-----
Умные мысли приходят тогда, когда все глупости уже сделаны...
 
My status
 Top
DelphinPRO
Отправлено: 26 Мая, 2014 - 12:39:10
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




как я понял задачу:

вывести таблицу. в случае совпадения значений в первом столбе в нескольких подряд идущих строках (возможно, данные следует отсортировать по этому значению, если там не хронологический порядок) выводить только первую строку, остальные скрыть, с возможностью открывания по упомянутой строке.

Делается весьма просто.

Генерируем такую разметку
CODE (html):
скопировать код в буфер обмена
  1. <table id="data-table">
  2.     <tr><td class="clicker" data-id="g12">12</td><td>...</td></tr>
  3.     <tbody id="g12" class="hidden">
  4.         <tr><td>12</td><td>...</td></tr>
  5.         <tr><td>12</td><td>...</td></tr>
  6.     </tbody>
  7.     <tr><td class="clicker" data-id="g14">14</td><td>...</td></tr>
  8.     <tbody id="g14" class="hidden">
  9.         <tr><td>14</td><td>...</td></tr>
  10.         <tr><td>14</td><td>...</td></tr>
  11.     </tbody>
  12. </table>


Пишем простой яваскрипт (jQuery)
CODE (javascript):
скопировать код в буфер обмена
  1. $("#data-table").on('click', '.clicker', function(){
  2.     var relId = $(this).data('id);
  3.    $('#' + relId).toggle();
  4. });


C генерацией разметки справитесь сами? Улыбка

CSS забыл для скрытия блоков изначально

CODE (css):
скопировать код в буфер обмена
  1. .hidden { display: none; }
Улыбка

(Отредактировано автором: 26 Мая, 2014 - 12:43:21)



-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Panoptik
Отправлено: 26 Мая, 2014 - 12:41:20
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




по хорошему я бы обработал изначально данные перед выводом. сгрупировав их в массив, по этому самому номеру, и потом выводил в таблице согласно группам, а группу можно вывести в отдельном диве или любом другом удобном элементе, и отображать скрывать его сколько угодно.

всё же не до конца понятна суть задачи, попробуйте нарисовать то что хотите сделать с пояснениями, а то сложно представить что вы там себе придумали


-----
Just do it
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB