ďťż

Przycisk sortowania w tabeli (podwójny)

       

Podstrony


telcocafe

Witam

Szukam sposobu na zrobienie przycisku, który by mi sortował dane w danych kolumnach tabel SQL. Jak sortować ja wiem. Chodzi mi tylko o wskazanie sposobu jak zrobić przycisk, który nie będzie wymagał wczytania nowej strony, tylko samej tabeli.

Np. mam takie kolumny mojej przykładowej tabelki:

NR DANE OPIS
1 3 opis1
2 8 opis2
3 4 opis3

i chodzi o to by komórki NR, DANE i OPIS były przyciskami "podwójnymi". Tzn tabela domyślnie wyświetla wszystko wg numerków w pierwszej kolumnie (1,2,3,...) ale po kliknięciu na przycisk "DANE", posortuje mi się tabela od najmniejszej liczby do największej, czyli:

NR DANE OPIS
1 3 opis1
3 4 opis3
2 8 opis2

A po ponownym naciśnięciu przycisku "DANE" kolumna "dane" posortuje się malejąco:

NR DANE OPIS
2 8 opis2
3 4 opis3
1 3 opis1

Teraz jak się naciśnie przycisk/komórkę "DANE", wyświetli się znów tabela z kolejnością rosnącą dla tej kolumny.

itd. z każdym przyciskiem.

Także zadanie sprowadza się do wskazania sposobu zrobienia "podwójnego" przycisku dla tabeli, i wskazania gdzie wstawić kod:

SELECT `nr` , `dane`, `opis` FROM `przyciski` ORDER BY dane DESC Fajnie by było, gdyby kliknięcie przycisku nie otwierało nowej strony, tylko sprowadzało się do posortowania tabeli.

Może się przyda:
SQL // wyświetlamy treść naszej tabeli przyciski $zapytanie = "SELECT `nr` , `dane`, `opis` FROM `przyciski`"; $idzapytania = mysql_query($zapytanie); while ($wiersz = mysql_fetch_row($idzapytania)) { echo '<tr class="przyciski"><td>'. $wiersz[0] .'</td><td>'. $wiersz[1] .'</td><td>'. $wiersz[2] .'</td></tr>'; }



Sprawdź http://tablesorter.com/docs/#Demo.
Pozdrawiam.

Wielkie dzięki!

Chciałbym jeszcze jedną rzecz zrobić do tej swojej tabelki. Nie wiem jak zrobić, żeby przy danym parametrze pewnej kolumny, cały wiersz załadował odpowiedni CSS. Np. nadać kolor żółty literom w wierszu.

Podświetlony na żółto powinien być wiersz 1 i 3 dla warunku:

$color = ($i >149) ? "yellow" : "yellow";

Tak wygląda tabelka (na dole jest osobna komórka, która pokazuje,ze działa CSS).
http://fotoo.pl/zdjecia/files/2009-07/f734665c.gif

A na razie poniższy kod powoduje, że wszystko wyświetla się na żółto z podkreśleniem.

Słyszałem, że trzeba to zrobić funkcją FOREACH. Macie jakieś pomysły?

<?php // połączenie się lokalnym serwerem bazy MySQL $sql_conn = mysql_connect('***', '***', '***') // w przypadku niepowodzenia połączenia zakończ aplikację or die('Nie mogłem połaczyć się z bazą danych'); // wybieramy bazę danych mysql_select_db('***'); // wybieramy bazę danych mysql_select_db('zawodnicy'); // wyświetlamy treść naszej tabeli $zapytanie = "SELECT `id`, `nazwisko`, `lata`, `punkty` FROM `nba`"; $idzapytania = mysql_query($zapytanie); $color = ($i >149) ? "yellow" : "yellow"; echo '<table id="large">'; while ($wiersz = mysql_fetch_row($idzapytania)) { echo '<tr> <td class="'.$color.'">'. $wiersz[0] .'</td> <td class="'.$color.'">'. $wiersz[1] .'</td> <td class="'.$color.'">'. $wiersz[2] .'</td> <td class="'.$color.'">'. $wiersz[3] .'</td> </tr>' ; } '</table>'; // zamykamy połączenie mysql_close($sql_conn); ?> <td class="yellow">tekst</td>

.yellow { color: #E0B400; text-decoration:underline; }

Czym jest $i?
Ogólnie niezbyt to rozumiem, ale możesz zrobić coś takiego (jeśli o to chodzi, że co drugi wiersz ma mieć inny styl):
<?php // połączenie się lokalnym serwerem bazy MySQL $sql_conn = mysql_connect('***', '***', '***') // w przypadku niepowodzenia połączenia zakończ aplikację or die('Nie mogłem połaczyć się z bazą danych'); // wybieramy bazę danych mysql_select_db('***'); // wybieramy bazę danych mysql_select_db('zawodnicy'); // wyświetlamy treść naszej tabeli $zapytanie = "SELECT `id`, `nazwisko`, `lata`, `punkty` FROM `nba`"; $idzapytania = mysql_query($zapytanie); echo '<table id="large">'; $i = 0; while ($wiersz = mysql_fetch_row($idzapytania)) { $color = ($i++ % 2 == 0) ? "yellow" : "red"; echo '<tr class="'.$color.'"> <td>'. $wiersz[0] .'</td> <td>'. $wiersz[1] .'</td> <td>'. $wiersz[2] .'</td> <td>'. $wiersz[3] .'</td> </tr>' ; } '</table>'; // zamykamy połączenie mysql_close($sql_conn); ?> <td class="yellow">tekst</td>.yellow td { color: #E0B400; text-decoration:underline; }

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.