Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][PHP] Wyświetlanie wyników w tabeli
Forum PHP.pl > Forum > Przedszkole
reed
Chciałem zrobić wyświetlanie wyników w tabeli w zależności na którą instrukcję warunkową trafimy...

Mam aktualnie fragment, który może nie jest najpiękniejszy ale działa sprawnie. Wyświetla wyniki jeden pod drugim, alfabetycznie i koloruje CSS w zależności od tego na jakiego IFa trafi

  1. $result = json_decode($i, TRUE);
  2.  
  3. // Sortuję tablicę alfabetycznie, po kluczach
  4. ksort($result);
  5.  
  6. // Wykonuję petlę, która ma za zadanie sprawdzić poniższe warunki
  7. foreach ($result as $i => $value) {
  8.  
  9. //1. Wyświetl wyniki tylko tam gdzie wartości są liczbowe
  10.  
  11. if (is_numeric ($value)) {
  12. echo $i;
  13. }
  14.  
  15. //2. Wyświetl wyniki tylko tam gdzie wartość jest "true"
  16. if ($value == "true")
  17. echo $i."ON";
  18.  
  19. //3. Na koniec wyświetl wyniki tam gdzie wartość jest "false"
  20. if ($value == "false")
  21. echo $i."OFF";
  22. }


chciałbym, żeby to była tablica 3 kolumnowa, która by wyglądała mniej więcej tak:

  1. <tr>
  2. <td>Ilość</td>
  3. <td>TRUE</td>
  4. <td>FALSE</td>
  5. </tr>
  6. <tr>
  7. <td>11</td>
  8. <td>ON</td>
  9. <td>OFF</td>
  10. </tr>
  11. <tr>
  12. <td>12</td>
  13. <td>ON</td>
  14. <td>OFF</td>
  15. </tr>
  16. <tr>
  17. <td>24</td>
  18. <td>ON</td>
  19. <td>OFF</td>
  20. </tr>
Lukeup
W tym konkretnym przypadku, lepiej zamieścić tabelę wewnątrz echo. Natomiast lepszą praktyką jest zamykanie PHP i otwieranie go we właściwym miejscu np.
  1. <td><?php echo $zmienna; ?></td>



  1. <?php
  2. $result = json_decode($i, TRUE);
  3.  
  4. // Sortuję tablicę alfabetycznie, po kluczach
  5. ksort($result);
  6.  
  7. echo "<table><td>Ilość</td>
  8. <td>TRUE</td>
  9. <td>FALSE</td>
  10. </tr>";
  11. // Wykonuję petlę, która ma za zadanie sprawdzić poniższe warunki
  12. foreach ($result as $i => $value) {
  13.  
  14. echo "<tr>";
  15. if (is_numeric ($value)) {
  16. echo "<td>".$i."</td>";
  17. }
  18.  
  19. //2. Wyświetl wyniki tylko tam gdzie wartość jest "true"
  20. if ($value == "true")
  21. echo "<td>".$i."ON</td>";
  22.  
  23. //3. Na koniec wyświetl wyniki tam gdzie wartość jest "false"
  24. if ($value == "false")
  25. echo "<td>".$i."OFF</td>";
  26.  
  27. echo "</tr>";
  28. }
  29. echo "</table>";
  30. ?>
reed
Coś nie do końca to działa. W chwili obecnej mam tabelę, (3 nagłówki) a i tak wszystko jest umieszczane w kolumnie pierwszej...
nospor
Bo Lukeup zamiast tworzyc wiersz co trzy elementy, to tworzy wiersz co kazdy element

Tu masz rozwiazanie
http://nospor.pl/co-trzy-wyswietlanie-danych.html
emillo91
Bo masz HTML tagi w warunkach. Jeżeli warunek się nie spełni to nie doda odpowiednio kolumny (znacznik <td>). W warunkach musiałbyś dawać wartość null albo pustą kolumnę wink.gif
nospor
@emillo91 jak juz pisalem: to nic nie zmieni skoro TR jest generowany dla kazdej opcji...
emillo91
No tak sciana.gif. Ale zauważ, że będzie chciał generować przy każdej iteracji 3 kolumny więc jeżeli któryś warunek się nie spełni to może dojść do sytuacji
  1. <tr>
  2. <td>2</td></td>ON</td>
  3. </tr>
  4. <tr>
  5. <td>OFF</td>
  6. </tr>
  7. <tr>
  8. <td>4</td><td>ON</td><td>OFF</td>
  9. </tr>

Odnośnie tagu zamykającego wiersz w tabeli to nie zauważyłem, że jest iterowany każdorazowo
reed
Sorry za LAG ale... była Majówka tongue.gif

Czyli nie da się tego zrobić w taki sposób jak wyżej... a może podejść od innej strony.

Tj. pozbierać najpierw dane do tablicy po kolei w grupach i potem wyświetlić?
nospor
@reed przeciez podalem ci rozwiazanie. Co jest z nim nie tak?
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.