Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP] Wyswietlanie tabeli poprzez petle
Forum PHP.pl > Forum > Przedszkole
JakubBab
Czesc,

Tabela z ktora sie mecze ma wygladac tak, ze :

th0 th1 th2 th3
td 0 td0 td0 td0
td1 td1 td1 td1
td++ td++td++ td++


Najblizszy porzadanego celu jest kod ponizej. Problem w tym, ze kazdy znak i podporzadkowane mu www powinny byc w sasiadujacej kolumnie (prezentacja powyzej) a nie pod.
  1. echo "<table>";
  2. for($i=0;$i<=4;$i++){
  3.  
  4. echo "<th>znak[$i]</th>";
  5.  
  6. echo "<tr>";
  7. for($j=0;$j<=4;$j++){
  8.  
  9. echo "<td>wwww[$j]</td>";
  10. echo "</tr>";
  11.  
  12. }
  13. }
  14.  
  15. echo "</table>";


Ktos cos?
Kshyhoo
Przenoszę do Przedszkola, dopasuj tytuł wątku do zasad na Forum.
nospor
<tr> dajesz przed petla
a </tr> dajesz w petli.... No nie widzisz tu totalnego braku logiki?

  1. echo "<tr>";
  2. for($j=0;$j<=4;$j++){
  3.  
  4. echo "<td>wwww[$j]</td>";
  5. }
  6. echo "</tr>";

prawda ze lepiej?
JakubBab
Nie prawda.

Juz przerabialem sposob zaproponowany przez Ciebie i wychodzi :

znak[0]
wwww[0] wwww[1] wwww[2] wwww[3] wwww[4]
znak[1]
wwww[0] wwww[1] wwww[2] wwww[3] wwww[4]
znak[2]
wwww[0] wwww[1] wwww[2] wwww[3] wwww[4]
znak[3]
wwww[0] wwww[1] wwww[2] wwww[3] wwww[4]
znak[4]
wwww[0] wwww[1] wwww[2] wwww[3] wwww[4]

Natomiast ja szukam rozwiazania, zeby wyszlo

znak[0] znak[1] znak[3] znak[4]
wwww[0] wwww[0] wwww[0] wwww[0]
wwww[1] wwww[1] wwww[1] wwww[1]

To tylko przyklad. W zamirzeniu pola www beda "wybieralne" wiec jak wybiore www[0] i przesle formularzem z ukrytym "input" to wtedy bede wiedzial, ze np. to www zostalo wybrane z petli znaku[3].
nospor
Ja poprawialem ci blad skladniowy smile.gif

Jak chcesz miec znaki w naglowku, to masz je wyswietlic w oddzielnej petli tylko i wylacznie na naglowki th
JakubBab
No tak, skladniowy..dzieki wink.gif

Teraz pytanie konkretne, jak zrobie osobna petle z naglowkami ale nie zapetle jej z www[x] (juz czepie sie przykladu ponizej) to w jaki bede wiedzial, ze www[3] zostalo wyslane z <th>znak[x]</th> ? W tym sek.
nospor
Powiem ci szczerze ze sie zgubilem... sad.gif
Naglowek to tylko i wylacznie prezentacja i ma sie nijak do wysylania gdziekolwiek. Jak chcesz cos wyslac razem ze swoim www to dodaj pole ukryte i bedzie wszystko jasne.

Moze podaj jakis praktyczny przyklad bo te pseudo znaki i www to mnie osobiscie dzis myla - piateczek wink.gif
JakubBab
OK.


W zalozeniu - system rezerwacji - . Wymyslilem tak, zamiast standardowego kalendarza zrobie -- mniej standardowy -- ktory bedzie wygladal tak.

*** PON WT SR CZW PIAT
9:00
10:00
11:00

Wiec zalozylem sobie, ze dzien tygodnia bedzie w pierwszej petli i wykorzystam date("l", mktime.....). Godzinom odpowiadalaby druga petla (wewnatrz pierwszej). Czyli, jesli ktos wybralby termin w srode o godzinie 10:00 to wtedy = bede wiedzial, ze pierwsza petla zatrzymala sie na 2 obrocie (lub trzecim w zaleznosci od ustawienia) a petla wewnatrz niej na pierwszym *.


Warunek wstawiam ktory bedzie tlumaczyl odpowiednio nr petli godzinowej na konkretna godzine tzn. wbacz, ze znowu powolam sie na przyklad ale tak latwiej zobrazowac ** www[0] = 9:00. **. Nastepnie record wstawiam do bazy danych, druga klasa pobiera mi zawartosc bazy danych i robi update ktory slot jest wolny. Tak w skrocie.

Ma to rece ?

nospor
Przekombinowales...

Po prostu kazda komorka z godzina ma miec pole np. checkbox, ktore bedzie wygladalo tak:
<input type="checkbox" name="reservation[day_of_week]['hour']" value="1" />
day_of_week - cyfry od 0 do 6
hour - twoja godzina

Gdy ktos kliknie na komorke, ty masz zaznaczac/odznaczac ten checkbox.
Potem normalnie wyslac formularz (ta tabelka jest wewnatrz forma) i bedziesz mial wyslane tylko checkbox ktore byly zaznaczone i wszystsko bedziesz mial co chcesz
JakubBab
No i to ma sens. Dzieki.


Tak z czystej ciekawosci ( i z faktu przesiedzianych paru godzin), czy da sie stowrzyc tabele jaka opisalem z wykorzystaniem zapetlenia dwoch petli for?
Kshyhoo
Da się, dwa przykłady na dwie pętle:
  1. <?php
  2. $poziome=10;
  3. $pionowe=10;
  4.  
  5. echo '<table border="1" cellpadding ="1" cellspacing="0" style="text-align: right;">';
  6. for($i=0; $i<=$pionowe; $i++) {
  7. echo '<tr>';
  8. for($j=0;$j<=$poziome; $j++) {
  9. if(($i == 0) && ($j == 0)) echo '<td width="25px" style="background: #c0c0c0;">X</td>';
  10. elseif($i == 0) echo '<td style="background: #c0c0c0;">'.$j.'</td>';
  11. elseif($j == 0) echo '<td style="background: #c0c0c0;">'.$i.'</td>';
  12. else echo '<td width="25px">'.$i*$j.'</td>';
  13. }
  14. echo '</tr>';
  15. }
  16. echo '</table><br /><br />';
  17.  
  18.  
  19. echo '<table rules="all" cellpadding="4" style="font:11px Arial,Verdana;border:2px solid #ccc;">'."\n";
  20. for ($j = 1; $j <= 10; $j++) {
  21. echo "<tr>\n";
  22. for ($i = 1; $i <= 10; $i++) {
  23. $liczba = $i*$j;
  24. if ($liczba%2 > 0)
  25. echo '<td bgcolor="green">';
  26. else
  27. echo '<td bgcolor="red">';
  28. echo $liczba;
  29. echo "</td>\n";
  30. }
  31. echo "</tr>\n";
  32. }
  33. echo "</table>";
  34.  
  35. ?>
nospor
Nie, a juz na pewnie nie przy uzyciu TR i TD. Moze jakies dzikie kombinacje z DIVami i position absolute ale to by bylo totalnie bez sensu
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.