Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [CSS][PHP] Datagrid.
Rewil
post 6.04.2010, 00:54:33
Post #1





Grupa: Zarejestrowani
Postów: 175
Pomógł: 0
Dołączył: 19.09.2009

Ostrzeżenie: (10%)
X----


Usiłuje zrobić takiego datagrida i nastąpiły problemy.

Otóż zrobiłem go na pewno w chaotyczny sposób, robiąc 9 divów obok z siebie z ustawionym float:left; oczywiście wszystko ładnie wygląda i tak dalej, ale czy istnieje jakiś inny bardziej optymalny sposob tworzenia takiego datagrida? Bo ustawiałem na sztywno robiąc klasy dla jednego paska rekordów, które powielając się tworzą listę. Ale gdy długość rekordu osiągnie szerokość przewidzianą dla całej komórki, po prostu się rozwala.
Dla tego teraz pytanie, ograniczać porostu długość tekstu ucinając go i dodając charakterystyczne (...), czy zrobić to w jakiś inny sposób.
Za wszystkie sugestię bardzo dziękuje.

  1. .kart_nr{
  2. float:left;
  3. width:40px;
  4. height:45px;
  5. background-color:0;
  6. border-right:1px solid #3090a4;
  7. }
  8.  
  9. .kart_data{
  10. float:left;
  11. width:100px;
  12. border-right:1px solid #3090a4;
  13.  
  14. }
  15.  
  16. .kart_czas{
  17. float:left;
  18. width:160px;
  19. border-right:1px solid #3090a4;
  20. }


  1. <div class="kart_box<?=$parz?>">
  2. <div class="kart_nr"><?=$i?></div>
  3. <div class="kart_data">2009/11/09</div>
  4. <div class="kart_czas"><?=$godzsum?> ( <?=$lol?> min.)</div>
  5. <div class="kart_start"><?=$hoursx?>:<?=$hoursbx?><?=$linka?></div>
  6. <div class="kart_koniec"><?=$hours2x?>:<?=$hours2bx?><?=$linkb?></div>
  7. <div class="kart_pacjentow"><?=$ilosc_pacjentow_info?></div>
  8. <div class="kart_opis"><?=$row['notes']?></div>
  9. <div class="kart_edycja"><a href='edytuj_wpis.php?time_id=<?=$row['time_id']?>'">E</a><a href='usuwanie_wpisu.php?time_id=<?=$row['time_id']?>'">X</a></div>
  10. </div>
Go to the top of the page
+Quote Post
1010
post 6.04.2010, 01:47:38
Post #2





Grupa: Zarejestrowani
Postów: 749
Pomógł: 37
Dołączył: 3.10.2006

Ostrzeżenie: (0%)
-----


To są dane tabelaryczne, a dane tabelaryczne przedstawiamy w TABELACH!

Nie przesadzajmy już z tym, że tabele są złe! Do danych tabelarycznych właśnie one są odpowiednim rozwiązaniem


--------------------
Go to the top of the page
+Quote Post
john_doe
post 6.04.2010, 06:46:37
Post #3





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

Ostrzeżenie: (0%)
-----


skomplikowałeś sobie proste zadanie. Przedmówca ma rację. Dane tabeleryczne. Co drugi wiersz w innym kolorze (załatwisz to w pętli i pewnie działaniem modulo)
Go to the top of the page
+Quote Post
mortus
post 6.04.2010, 06:47:52
Post #4





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

Ostrzeżenie: (0%)
-----


Cytat(1010 @ 6.04.2010, 02:47:38 ) *
To są dane tabelaryczne, a dane tabelaryczne przedstawiamy w TABELACH!

Nie przesadzajmy już z tym, że tabele są złe! Do danych tabelarycznych właśnie one są odpowiednim rozwiązaniem

Dokładnie, do przedstawiania tego typu danych słóżą tabele. Jednak dzisiaj można również div-y do tego przystosować (stąd style display: table...). Spróbuj zrobić tak:
  1. <div class="kart_box<?=$parz?>">
  2. <div class="kart_nr"><?=$i?></div>
  3. <div class="kart_data">2009/11/09</div>
  4. <div class="kart_czas"><?=$godzsum?> ( <?=$lol?> min.)</div>
  5. <div class="kart_start"><?=$hoursx?>:<?=$hoursbx?><?=$linka?></div>
  6. <div class="kart_koniec"><?=$hours2x?>:<?=$hours2bx?><?=$linkb?></div>
  7. <div class="kart_pacjentow"><?=$ilosc_pacjentow_info?></div>
  8. <div class="kart_opis"><?=$row['notes']?></div>
  9. <div class="kart_edycja"><a href='edytuj_wpis.php?time_id=<?=$row['time_id']?>'">E</a><a href='usuwanie_wpisu.php?time_id=<?=$row['time_id']?>'">X</a></div>
  10. <div class="clear"></div>
  11. </div>
i
  1. .clear {
  2. clear: both;
  3. }
Dla komórek, które mogą mieć więcej treści, trzeba odpowiedni overflow ustawić (spróbuj hidden albo auto, bo nie wiem dokadnie).
Go to the top of the page
+Quote Post
Rewil
post 6.04.2010, 11:49:49
Post #5





Grupa: Zarejestrowani
Postów: 175
Pomógł: 0
Dołączył: 19.09.2009

Ostrzeżenie: (10%)
X----


No właśnie sugerowałem się tym, że wszyscy mówią że tabele są be i nie powinno się ich używać. Czyli zwykłe tabele?
Go to the top of the page
+Quote Post
phpion
post 6.04.2010, 11:55:07
Post #6





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(Rewil @ 6.04.2010, 12:49:49 ) *
No właśnie sugerowałem się tym, że wszyscy mówią że tabele są be i nie powinno się ich używać. Czyli zwykłe tabele?

Mówią też, że zwykłe majty są be - czy do roboty w polu poszedłbyś w stringach?
Go to the top of the page
+Quote Post
1010
post 6.04.2010, 11:59:09
Post #7





Grupa: Zarejestrowani
Postów: 749
Pomógł: 37
Dołączył: 3.10.2006

Ostrzeżenie: (0%)
-----


Tabele są "be", jeśli ktoś je wykorzystuje do składania całych szablonów, natomiast jeśli chcesz przedstawić dane tabelaryczne to zdecydowanie są "ach ach"...

Takie jest ich przeznaczenie

Tutaj w zabawny sposób jest to wytłumaczone: http://osiolki.net/tabelki/


--------------------
Go to the top of the page
+Quote Post
Rewil
post 21.04.2010, 16:30:56
Post #8





Grupa: Zarejestrowani
Postów: 175
Pomógł: 0
Dołączył: 19.09.2009

Ostrzeżenie: (10%)
X----


Mam znowu pytanie co do tego Datagrida, otoz chcial bym zrobić w nim sortowanie rekordów. I teoretycznie wiem jak to zrobić, ale czy nie da się prościej innym sposobem?

Otóż ifami popostu sprawdzam geta, jak ma sortować wartości i w zaleznosci od kierunku sortowania daje odpowiednie zapytanie do mysql'a. Ale co robić gdy jest 10 pól? Ja się już powoli gubię dlatego stąd moje pytanie.

  1. if(empty($_GET['sortowanie'])){
  2. $minuty_sort = '<a href="akceptacja_wnioskow.php?sortowanie=minuty_d&okr='.$_GET['okr'].'">Minuty</a>';
  3. $data_sort_start = '<a href="akceptacja_wnioskow.php?sortowanie=data_d">Data Start</a>';
  4. }elseif($_GET['sortowanie'] == "data_u"){
  5. $minuty_sort = '<a href="akceptacja_wnioskow.php?sortowanie=minuty_d&okr='.$_GET['okr'].'">Minuty<img class="strzalka" src="images/strzalka2.PNG"></a></img>';
  6. $data_sort_start = '<a href="akceptacja_wnioskow.php?sortowanie=data_d">Data Start</a>';
  7. }elseif($_GET['sortowanie'] == "data_d"){
  8. $minuty_sort = '<a href="akceptacja_wnioskow.php?sortowanie=minuty_u&okr='.$_GET['okr'].'">Minuty<img class="strzalka" src="images/strzalka.PNG"></a></img>';
  9. $data_sort_start = '<a href="akceptacja_wnioskow.php?sortowanie=data_d">Data Start</a>';
  10. }

Rozważenie każdej możliwości, to idzie się pogubić ;]

Plus wyświetlanie:

  1. if(empty($_GET['sortowanie'])){
  2. $results = mysql_query("select * from statystyki and start_data >= '$start_date' and koniec_data <= '$end_date' order by start_data desc;");
  3. }elseif($_GET['sortowanie'] == "data_u"){
  4. $results = mysql_query("select * from statystyki and start_data >= '$start_date' and koniec_data <= '$end_date' order by start_data desc;");
  5. }elseif($_GET['sortowanie'] == "data_d"){
  6. $results = mysql_query("select * from statystyki and start_data >= '$start_date' and koniec_data <= '$end_date' order by start_data asc;");
  7. }elseif($_GET['sortowanie'] == "minuty_u"){
  8. $results = mysql_query("select * from statystyki and start_data >= '$start_date' and koniec_data <= '$end_date' order by minuty desc;");
  9. }elseif($_GET['sortowanie'] == "minuty_d"){
  10. $results = mysql_query("select * from statystyki and start_data >= '$start_date' and koniec_data <= '$end_date' order by minuty asc;");
  11. }

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 20:36