Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][PHP] Table rowspan
ZenekN
post 13.01.2014, 19:59:35
Post #1





Grupa: Zarejestrowani
Postów: 419
Pomógł: 5
Dołączył: 7.08.2012

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


Hej chciałem stworzyć dość skomplikowaną tabelę za pomocą kilku pętli forach (pętla w pętli itd), oraz wiersze w wierszach.
Ciężko jest mi to ogarnąć czy w ogóle jest to możliwe za pomocą języka php ?


Problem polega na tym że nie potrafię utworzyć np. rowspan=2 itd
Go to the top of the page
+Quote Post
Kshyhoo
post 13.01.2014, 20:01:54
Post #2





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Jest możliwe, było niedawno kilka wątków o tym. Może naszkicuj, co chcesz osiągnąć.


--------------------
Go to the top of the page
+Quote Post
mar1aczi
post 13.01.2014, 20:02:18
Post #3





Grupa: Zarejestrowani
Postów: 731
Pomógł: 141
Dołączył: 9.05.2011
Skąd: śląskie

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


Pokaż kod - to co już masz i np. obrazek, jak chcesz aby wyglądał efekt końcowy.


--------------------
Szanuj innych czas! Kliknij , gdy pomocną wskazówkę otrzymasz.
Go to the top of the page
+Quote Post
ZenekN
post 13.01.2014, 20:53:12
Post #4





Grupa: Zarejestrowani
Postów: 419
Pomógł: 5
Dołączył: 7.08.2012

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


Za 2 godziny podrzucę, do zobaczenia w temacie! biggrin.gif

  1.  
  2. <table class="table table-bordered">
  3. <thead>
  4. <tr><th>Kategoria</th><th>Subkategoria</th><th>Produkt</th></tr>
  5. </thead>
  6. <tbody>
  7.  
  8. <?php
  9.  
  10.  
  11. foreach ($listcategories as $categories) {
  12. echo '<tr >';
  13. echo "<td rowspan='4'>";
  14. echo $categories['Category']['name'];
  15. echo ' </td>';
  16.  
  17. foreach ($categories['Subcategory'] as $subcategories) {
  18. echo '<td>';
  19. echo $subcategories['name'];
  20. echo '</td>';
  21.  
  22.  
  23. }
  24. foreach ($categories['Product'] as $produkt) {
  25. echo '<td>';
  26. echo $produkt['name'];
  27. echo '</td>';
  28.  
  29.  
  30. }
  31.  
  32. echo '</tr>';
  33.  
  34.  
  35. }
  36. ?>
  37.  
  38.  
  39. </tbody>
  40. </table>
  41.  



Go to the top of the page
+Quote Post
ZenekN
post 14.01.2014, 09:18:35
Post #5





Grupa: Zarejestrowani
Postów: 419
Pomógł: 5
Dołączył: 7.08.2012

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


Cześć udało mi się osiągnąć rowspan dzięki count().
Teraz mam kolejny problem chciałbym dodatkowo zagnieździć kolejne wiersze poprzez rowspan dla pętli produkty w pętli subkategorie.

  1. // jak zagdnieździć tą pętle aby dostać rowspan dla środkowej kolumny subkategorie
  2.  
  3. foreach ($categories['Product'] as $produkt) {
  4.  
  5. echo $produkt['name'];
  6.  
  7.  
  8. }
  9.  






  1. <table class="table table-bordered">
  2.  
  3. <tr><th>Kategoria</th><th>Subkategoria</th><th>Produkt</th></tr>
  4.  
  5.  
  6.  
  7. <?php
  8.  
  9.  
  10.  
  11. foreach ($listcategories as $categories) {
  12. echo '<tr>';
  13. echo '<td rowspan="'?> <?php echo count($categories['Subcategory']) +1; ?><?php echo '">';
  14.  
  15. echo $categories['Category']['name'];
  16. echo '</td>';
  17. echo '</tr>';
  18.  
  19. foreach ($categories['Subcategory'] as $subcategories) {
  20. echo '<tr>';
  21. echo '<td >';
  22. echo $subcategories['name'];
  23. echo '</td>';
  24.  
  25.  
  26. }
  27.  
  28.  
  29.  
  30. }
  31.  
  32.  
  33. ?>






ps. założyłem drugi temat bo poprzedni był bardzo nieczytelny.

Ten post edytował ZenekN 14.01.2014, 09:19:59
Go to the top of the page
+Quote Post
Kshyhoo
post 14.01.2014, 09:37:47
Post #6





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Ja jednak połączę te tematy.


--------------------
Go to the top of the page
+Quote Post
nospor
post 14.01.2014, 10:14:13
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




rowspan w podkategoriach, robisz podobnie jak w to robiles w kategoriach

Zas aktualny rowspan w kategoriach musisz niestety zmodyfikowac. Ten rowsspan musi miec taką wartosc ile w sumie bedziesz mial produktow.
Jesli wiec kategoria ma dwie podkategorie, to postaremu dales rowspan 2. Teraz musi zliczyc wpierw ile w sumie produktow mają te dwie podkategorie, i dopiero na tej podstawie ustawic rowspan dla kategorii.

Sprowadza sie to wiec do tego, ze wpierw musisz wykonac niezbedne wyliczenia, a dopiero potem budowac tabelkę.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
ZenekN
post 14.01.2014, 16:15:58
Post #8





Grupa: Zarejestrowani
Postów: 419
Pomógł: 5
Dołączył: 7.08.2012

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


mam jeszcze jedna wątpliwość której nie do końca rozumiem dlaczego do count muszę dodać +1

  1. <?php echo count($categories['Product']) +1; ?>


Ten post edytował ZenekN 14.01.2014, 16:25:27
Go to the top of the page
+Quote Post
nospor
post 14.01.2014, 19:48:40
Post #9





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Widocznie dodales gdzies TR o jeden za duzo. Pokaz kod lub sam sprawdz smile.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
ZenekN
post 15.01.2014, 11:04:42
Post #10





Grupa: Zarejestrowani
Postów: 419
Pomógł: 5
Dołączył: 7.08.2012

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





  1. <table class="table table-bordered">
  2.  
  3. <tr><th>Kategoria</th><th>Subkategoria</th><th>Produkt</th></tr>
  4.  
  5.  
  6.  
  7. <?php
  8.  
  9.  
  10.  
  11. foreach ($listcategories as $categories) {
  12.  
  13.  
  14.  
  15. echo '<tr>';
  16. echo '<td rowspan="'?> <?php echo count($categories['Subcategory']); ?><?php echo '">';
  17.  
  18. echo $categories['Category']['name'];
  19. echo '</td>';
  20. echo '</tr>';
  21.  
  22. foreach ($categories['Subcategory'] as $subcategories) {
  23.  
  24. echo '<tr>';
  25. echo '<td>';
  26. echo $subcategories['name'];
  27. echo '</td>';
  28. echo '</tr>';
  29. }
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38. }
  39.  
  40.  
  41. ?>
  42.  
  43.  
  44.  
  45. </table>




var_dump dla count($categories['Subcategory'])
  1. /app/View/Categories/admin_index.ctp (line 59)
  2.  
  3. (int) 4
  4.  
  5. /app/View/Categories/admin_index.ctp (line 59)
  6.  
  7. (int) 3
  8.  
  9. /app/View/Categories/admin_index.ctp (line 59)
  10.  
  11. (int) 1
  12.  
  13. /app/View/Categories/admin_index.ctp (line 59)
  14.  
  15. (int) 1
  16.  
  17. /app/View/Categories/admin_index.ctp (line 59)
  18.  
  19. (int) 3
  20.  
  21. /app/View/Categories/admin_index.ctp (line 59)
  22.  
  23. (int) 3
  24.  
  25. /app/View/Categories/admin_index.ctp (line 59)
  26.  
  27. (int) 3
  28.  


Ten post edytował ZenekN 15.01.2014, 11:06:29
Go to the top of the page
+Quote Post
nospor
post 15.01.2014, 11:12:25
Post #11





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




rowspan dotyczy aktualnego TR oraz nastepnych a nie jak ty myslisz ze tylko nastepnych. Prawidlowo powinienes zrobic Rowspan na 3 i jeszcze w tym samym TR dodac TD i to w nim powinna byc pierwsza subkategoria, a dwoch nastepnych TR kolejne dwie subkategorie smile.gif
Lub jak masz teraz, tylko sie nie dziw, ze musisz dac o 1 wiecej wink.gif

Masz, pobaw sie tym przykladem, moze lepiej zrozumiesz zasadze rowspan
http://www.w3schools.com/tags/tryit.asp?fi...html_td_rowspan
Powód edycji: [nospor]:


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
ZenekN
post 15.01.2014, 17:28:02
Post #12





Grupa: Zarejestrowani
Postów: 419
Pomógł: 5
Dołączył: 7.08.2012

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


Poddaje się czy jesteś w stanie na moim kodzie pokazać błąd :/ ?
Go to the top of the page
+Quote Post
Kshyhoo
post 15.01.2014, 19:48:58
Post #13





Grupa: Opiekunowie
Postów: 3 855
Pomógł: 317
Dołączył: 4.01.2005
Skąd: że




Wklejasz jakieś strzępki kodu i liczysz na pomoc. Wklej jakieś przykładowe dane z bazy i kod, jak klecisz tabelki.


--------------------
Go to the top of the page
+Quote Post
nospor
post 16.01.2014, 08:36:25
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Przeciez blad ci dokladnie napisalem jaki masz. Podalem ci dwa rozwiazania tego bledu, wiec nie rozumiem w czym masz problem.

Pobawiles sie w ogole linkiem co ci podalem?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
ZenekN
post 16.01.2014, 13:18:50
Post #15





Grupa: Zarejestrowani
Postów: 419
Pomógł: 5
Dołączył: 7.08.2012

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


ok mam dziękujęexclamation.gif

przede wszystkim powinno być

  1. echo count($categories['Subcategory']) + count($categories['Product']) + count($listcategories[0]['Category']['name']


i widzę że są problemy z pętlami i relacjami.

Przyznam się że poległem w tym rozwiązaniu, rozwiązałem to w inny sposób nospor ale dzięki tobie udało mi się zrozumieć zasadę działania rowspan.



a znacie może jakieś inne metody zliczania tablicy ? By nie oddziaływały na nie relacje ?

Ten post edytował ZenekN 16.01.2014, 14:38:34
Go to the top of the page
+Quote Post
nospor
post 16.01.2014, 15:58:35
Post #16





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




za bardzo nie wiem o jakich problema z relacjami mowisz. Nigdy z czyms takim sie nie spotkalem


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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:37