Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [CSS][PHP] Datagrid.
Forum PHP.pl > Forum > Przedszkole
Rewil
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>
1010
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
john_doe
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)
mortus
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).
Rewil
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?
phpion
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?
1010
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/
Rewil
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. }

To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.