| Autor | Zpráva | ||
|---|---|---|---|
| michal28 Profil * |
#1 · Zasláno: 31. 5. 2013, 14:21:12
Zdravím, mám udělaný v php řazení že kliknu na tlačítko třeba město nebo ip a na to co kliknu se mi to seřadí sestupně ale potřeboval bych po dalším kliknutí aby se mi to seřadilo naopak. Nemužu přijit jak na to
<php? if (isset ($_REQUEST["razeni"])) { if ($_REQUEST["razeni"]=="id_herna"){ $_SESSION["radit"]="ORDER BY id_herna "; } } $sql='SELECT * FROM herny WHERE del=0 '.$_SESSION["radit"].' '; a na tlačitko to mám takto <td><a href="?razeni=id_herna">IP herny</a></td> dik moc za radu |
||
| preca1 Profil |
#2 · Zasláno: 31. 5. 2013, 14:39:11
|
||
| michal28 Profil * |
#3 · Zasláno: 31. 5. 2013, 15:32:16
to vím ale potřebuji aby mě to po kliknutí na ten odkaz se seřadilo pomoci desc a po dalším kliknuti pomoci asc
|
||
| Tori Profil |
#4 · Zasláno: 31. 5. 2013, 15:36:48
Tak si přidejte do URL ještě jeden nepovinný parametr pro směr řazení. Pak budete podle toho měnit i URL odkazu.
|
||
| peta Profil |
#5 · Zasláno: 31. 5. 2013, 15:37:17
A? V cem je problem? Neumis do session ulozit ASC a pripade, ze $_REQUEST['key'] je stejny jako $_SESSION['key'] zmenit $_SESSION['type'] na ASC nebo DESC, podle toho jestli se type=ASC ano, ne?
|
||
| Sir Tom Profil |
michal28:
https://developers.google.com/chart/interactive/docs/gallery/table - vypiš data do google tabulky a pak si s tím hraj už na úrovni googlu... |
||
| michal28 Profil * |
#7 · Zasláno: 31. 5. 2013, 16:40:57
peta:
a jak provedu aby mi to reagovalo na další kliknutí na odkaz? |
||
| ts_istudio Profil |
#8 · Zasláno: 31. 5. 2013, 17:04:05
michal28:
„a jak provedu aby mi to reagovalo na další kliknutí na odkaz?“ Kliknutí na odkaz způsobí přechod na stránku, v tomto případě na stejnou stránku. Do odkazu si kromě razeni přidej ještě poradi a při vypsání tabulky dej do odkazu jeho opačnou hodnotu, tzn. třeba jednou "asc" a potom "desc". Nebo jakékoliv jiné dva řetězce, třeba "" a "d".
|
||
| michal28 Profil * |
#9 · Zasláno: 1. 6. 2013, 15:33:21
ts_istudio mohl bych názorný příklad s tím odkazem prosím?
|
||
| ts_istudio Profil |
michal28:
<?php
$sloupec = "jmeno";
$radit = "";
if ($_GET["sloupec"] != "") { $sloupec = $_GET["sloupec"];};
if ($_GET["radit"] == "") { $radit = "desc";};
$q = "SELECT * FROM lidi ORDER BY ".$sloupec." ".$radit;
echo $q;
$res = mysql_query($q);
$cnt = mysql_num_rows($res);
if ($cnt) {
echo "<table>";
echo "<tr>";
echo "<th><a href='?sloupec=jmeno&radit=".$radit."'>Jméno</th>";
echo "<th><a href='?sloupec=prijmeni&radit=".$radit."'>Příjmení</th>";
echo "</tr>";
while ($ret=MySQL_Fetch_Array($res)):
echo "<tr>";
echo "<td>".$ret["jmeno"]."</td>";
echo "<td>".$ret["prijmeni"]."</td>";
echo "</tr>";
endwhile;
echo "</table>";
}
?> |
||
| juriad Profil |
#11 · Zasláno: 3. 6. 2013, 08:30:08
michal28:
POZOR, ts_istudiův kód je děravý a nebezpečný a nefunguje změna řazení, chápej ho jen jako ukázku, jakým směrem se vydat. |
||
| ts_istudio Profil |
#12 · Zasláno: 3. 6. 2013, 08:33:32
juriad:
Neřeším tam zabezpečení, protože by to ubralo na přehlednosti. Změna řazení nefunguje? |
||
| juriad Profil |
#13 · Zasláno: 3. 6. 2013, 08:51:50
ts_istudio:
Do odkazu v hlavičce tabulky vypisuješ to, co ti přijde GETem, nikde neprovádíš inverzi. fragmenty kódu: if(isset($_GET['radit']) && $_GET['radit'] == 'desc') {
$radit = 'desc';
$opak = 'asc';
} else {
$radit = 'asc';
$opak = 'desc';
}
if(isset($_GET['sloupec']) && $_GET['sloupec'] == 'prijmeni') {
$sloupec = 'prijmeni';
} else {
$sloupec = 'jmeno';
}
$q = "SELECT * FROM lidi ORDER BY ".$sloupec." ".$radit;
#dotaz do databáze stejně
# výpis hlavičky stejně s upravenými následujícími řádky
echo "<th><a href='?sloupec=jmeno&radit=" . ($sloupec =='jmeno' ? $opak : 'asc') . "'>Jméno</th>";
echo "<th><a href='?sloupec=prijmeni&radit=" . ($sloupec=='prijmeni' ? $opak : 'asc') . "'>Příjmení</th>";
#výpis těla tabulky stejněChová se to tak, že pokud budeš klikat na jeden sloupec, tak se bude řazení pořád otáčet. Pokud klikneš na jiný sloupec, tak se řadit bude podle něj a vždy začíná vzestupně. |
||
| peta Profil |
#14 · Zasláno: 3. 6. 2013, 08:59:29
Tohle neumis napsat?
<?php session_start(); $a = isset($_SESSION['serad']) ? $_SESSION['serad'] : 'ASC'; $b = isset($_GET['serad']) ? ($a=='ASC' ? 'DESC' : 'ASC') : $a; $_SESSION['serad'] = $b; echo $b; ?> <a href="?serad">serad</a> |
||
| juriad Profil |
#15 · Zasláno: 3. 6. 2013, 09:03:53
peta:
Nemáš stabilní url, s (skoro) každým refreshem stránky se ti změní směr řazení v tabulce. |
||
| ts_istudio Profil |
#16 · Zasláno: 3. 6. 2013, 09:21:08
juriad:
„Do odkazu v hlavičce tabulky vypisuješ to, co ti přijde GETem, nikde neprovádíš inverzi.“ Inverze je na 7. řádku. Přepínání při každém kliknutí na sloupec byl záměr. Nechci se ale dohadovat o detailech, michal28 už myslím dostatek informací dostal. |
||
| juriad Profil |
#17 · Zasláno: 3. 6. 2013, 09:26:49
ts_istudio:
„Inverze je na 7. řádku. Přepínání při každém kliknutí na sloupec byl záměr.“ Aha, nevšiml jsem si. (Dostatečně jsem si nerozebral případy.) „Nechci se ale dohadovat o detailech, michal28 už myslím dostatek informací dostal.“ Souhlasím. Počkáme, až se ozve s nějakým problémem. |
||
| peta Profil |
#18 · Zasláno: 3. 6. 2013, 13:19:15
juriad: Serad se zmeni, pokud ho odesles getem. Pokud das refresh, kdyz mas v url serad, tak se to logicky zmeni. Vychazim z podminek zadani, nevim, proc mi to vycitas.
|
||
| Sir Tom Profil |
#19 · Zasláno: 3. 6. 2013, 16:21:07
michal28:
Kdybys použil moje navrhované řešení, tak bys nemusel řešit takové komplikovanosti... :) |
||
|
Časová prodleva: 12 let
|
|||
0