Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Przycisk sortowania w tabeli (podwójny)
Forum PHP.pl > Forum > Przedszkole
wojteke
//edit: na razie probuje sortowac z "tablesort"

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:
  1. 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:
  1. // wyświetlamy treść naszej tabeli przyciski
  2. $zapytanie = "SELECT `nr` , `dane`, `opis` FROM `przyciski`";
  3. $idzapytania = mysql_query($zapytanie);
  4. while ($wiersz = mysql_fetch_row($idzapytania)) {
  5. echo '<tr class="przyciski"><td>'. $wiersz[0] .'</td><td>'. $wiersz[1] .'</td><td>'. $wiersz[2] .'</td></tr>';
  6. }







//edit: na razie probuje sortowac z "tablesort"
Efan
podłączam się do pytania
z3L
Proponuje skorzystac z ajaxa.
Efan
Jakie parametry ustawić na przycisku submit i jak je przechwycić przez skrypt żeby działało.
Fifi209
Możesz również zrobić to sortowanie jako linki, zrobić ramkę i target w linkach na ramkę. (przynajmniej nie będziesz zadawał pytań dot. ajax'a haha.gif)
Efan
Mogę,ale nie wiem jak!
Mam taki kod, i teraz jak przekazać dane do php

  1. <form action="" method="POST">
  2. <option name="id" selected="selected">ID użytkownika</option>
  3. <option name="nazwa">Nazwa użytkownika</option>
  4. <option name="email">Adres e-mail</option>
  5. <option name="rejestracja">Data rejestracji</option>
  6. <option name="wizyta">Ostatnia wizyta</option>
  7. <option name="ros" selected="selected">Rosnąco</option>
  8. <option name="mal">Malejąco</option>
  9. <input type="submit" name="submit" value="Sortuj">
  10. </form>


  1. <?php
  2. $zapytanie = "SELECT * FROM ".$pre."user ORDER by user_id ASC";
  3. ?>


Chyba,że coś takiego,ale nie podoba mi się to rozwiązanie

  1. <?php
  2. if($sortuj=='id_up') {
  3. $zapytanie = "SELECT * FROM ".$pre."user ORDER BY user_id DESC";
  4. }
  5. if($sortuj=='id_down') {
  6. $zapytanie = "SELECT * FROM ".$pre."user ORDER BY user_id ASC";
  7. ?>
Fifi209
Cytat(Efan @ 22.07.2009, 10:27:02 ) *
Mogę,ale nie wiem jak!

No to google i poczytaj co to są ramki
Efan
Najpierw metoda prób i błędów potem wyszukiwarka a na końcu forum. Tak też było w tym przypadku. Odsyłanie mnie do google nie rozwiąże problemu, bo skoro nie wiem to pytam a pytam bo chcę wiedzieć.
Daj więc sobie spokój ze spychologią jeśli wiesz to po prostu napisz...
PS: google znajduje tylko ramki do zdjęć!
lkow77
Cytat(fifi209 @ 22.07.2009, 12:11:34 ) *
No to google i poczytaj co to są ramki



denerwuje mnie takie coś, forum jest po to żeby pytać, rozmawiać a nie odsyłać do google - co to jest google to my wiemy...
erix
No dobrze - budujesz dom. Jak chcesz postawić ścianę, skoro nie wiesz, jak wygląda cegła?

W takich sytuacjach powierza się to komuś innemu, ale to wymaga czasu. Ciesz się, że ktoś w ogóle pomaga naprowadzając. Nie pasuje? Nikt tu nie trzyma.

Ale oczekując gotowca = zlecenie -> inny dział.
Efan
Parę postów już tutaj napisałem,ale odpowiedź zawsze jest podobnej treści... Liczyłem na pomoc w rozwiązaniu technicznej zagwostki a spotykam się ze spychologicznym podejściem kolegów którzy patrzą na mnie z góry
erix
Gotowca nie dostaniesz.

I nie chodzi o "spychologię", tylko o Twoje lenistwo.
Fifi209
Żebyśmy nie byli tacy źli, napisałem Ci przykład z ajaxem.

  1. <head>
  2. <script type="text/javascript" src="jquery.js"></script>
  3. <script type="text/javascript">
  4. function sortuj() {
  5. $.ajax({
  6. type: 'POST',
  7. url: 'sort.php',
  8. data: {by: $("#content a").attr('href')},
  9. success: function(x) {
  10. $("#response").html(x);
  11. }
  12. });
  13. }
  14.  
  15. $(document).ready(
  16. function() {
  17. $("#response").load('sort.php');
  18. $("#content a").click(
  19. function() {
  20. sortuj();
  21. }
  22. ).toggle(
  23. function() {
  24. $("#content a").attr('href', '#asc');
  25. $("#content a").text('Sortuj a-z');
  26. },
  27. function() {
  28. $("#content a").attr('href', '#desc');
  29. $("#content a").text('Sortuj z-a');
  30. }
  31. );
  32. }
  33. );
  34. </script>
  35. <body>
  36. <div id="content">
  37. <a href="#desc">Sortuj z-a</a>
  38. </div>
  39. <div id="response">It's Empty!</div>
  40. </body>
  41. </html>


i sort.php:
  1. <?php
  2.  
  3.    if (isset($_POST['by'])) {
  4.        echo 'Sortowane po: '.$_POST['by'];
  5.    }else{
  6.        echo 'Sortowane po: #asc';
  7.    }
  8.  
  9. ?>
Efan
można? można! Dzięki!
wojteke
Mi udało się zrobić sortowanie "tablesort'em".


Mam teraz taki problem:

Usilnie poszukuję sposobu na blokadę kliknięcia danej komórki w danej kolumnie właśnie tego "tablesort'u" (kolumna jest bez wierszy, bo to jest po prostu taka jedno-wierszowa tabelka z przyciskami i chodzi o to by zablokować jedną kolumnę = w tym przypadku jedną komórkę! smile.gif).

Mam w skrypcie coś takiego:

  1. <th>'. $wiersz[5] .'</th>


Jest to fragmencik wywołujący jedną z kolumn. Na wszystkich kolumnach są przyciski sortujące poniższe całe kolumny. Chciałbym teraz mieć możliwość zablokowania kliknięcia danej komórki w pewnej kolumnie. Da radę to zrobić css'em lub z html'a?
Fifi209
Jeżeli są to przyciski (inputy) to dajesz disabled smile.gif
wojteke
To nie są chyba inputy, bo tą funkcją mi się tylko tworzy dodatkowy przycisk w komórce, a ten mój właściwy przycisk zostaje i nadal działa. sad.gif
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.