Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Jak projít url pomocí cyklu proměnnou $_GET

Aktivity
Avatar
no.good
Člen
Avatar
no.good:31.1.2014 13:55

Ahoj, chtěl bych se zeptat, snažím se projít dotaz pomocí proměnné $_GET jako například tento:

?zna0=acer&zna1=ca­non&zna2=benq

Pokud ho procházím níže uvedeným kódem, tak mi to vždy zacyklí ve WHILE cyklu. Předem díky za rady :-)

if (isset($_GET['zna0'])){
        $i = 0;
        $poleZnacek = array();  //pole pro ukládání znacek hodnot
        $znacky = 'zna' . $i;   //Zde by se měla vždy zvýšit proměnná $i a tím načíst další hodnotu z URL zna0, zna1, atd.
        $klic = false;
        if (isset($_GET[$znacky]))
            {
                 while (($klic = isset($_GET[$znacky])) == true )  //Tento cyklus by měl projít všechny hodnoty z URL
                 {
                      $poleZnacek[] =  $_GET[$znacky];
                     $i++;
                 }
            }
        var_dump($poleZnacek);
 }
 
Odpovědět
31.1.2014 13:55
Avatar
Odpovídá na no.good
Martin Konečný (pavelco1998):31.1.2014 14:16
if (isset($_GET["zna0"])) {
    $poleZnacek = array();
    foreach ($_GET as $key => $value) {
        if (strpos($key, "zna") !== FALSE) {
            $poleZnacek[] = $value;
        }
    }

    var_dump($poleZnacek);
}
Editováno 31.1.2014 14:19
Nahoru Odpovědět
31.1.2014 14:16
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
no.good
Člen
Avatar
no.good:31.1.2014 14:26

Super díky moc, jsem nevěděl, že se dá se s tím dá takhle pracovat :)

 
Nahoru Odpovědět
31.1.2014 14:26
Avatar
reddi
Člen
Avatar
reddi:31.1.2014 14:30

Jde o to, ze mas spatne postavenou podminku ve while cyklu, ta je po prvnim pruchodu nastavena na TRUE (isset($_GET['z­na0'])) == true), to je vyhodnoceno jako TRUE uz v prvni podmince IF a tim padem z toho cyklu nevyskocis.
$i++; ve whilu ti je tam k nicemu, jelikoz promennou $znacky = 'zna' . $i; menis mimo cyklus, ktery ti bezi do nekonecna.

to pavelco1998: predbehl jsi me v reseni :)

Editováno 31.1.2014 14:31
 
Nahoru Odpovědět
31.1.2014 14:30
Avatar
Odpovídá na no.good
Martin Konečný (pavelco1998):31.1.2014 14:35

$_GET, $_POST, $_SESSION atp. jsou normální pole, která můžeš procházet i přes foreach.
Pokud bys chtěl ještě o trochu důkladnější kontrolu, mohl bys místo strpos() použít:

if (preg_match("#^zna[0-9]+$#", $key))

což by mělo brát pouze "zna" a za tím číslo.

Jinak nevím, jak dostáváš ty parametry do URL, ale nebylo by vhodnější uložit do URL přímo pole? Pak bys nemusel procházet celý $_GET, ale třeba jen $_GET["znacky"].

\---

Nahoru Odpovědět
31.1.2014 14:35
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
no.good
Člen
Avatar
no.good:31.1.2014 14:58

Co se týká toho jak dostávám ty proměnné do url, tak mám udělaných několik filtrů(pomocí checkboxů), což procházím pomocí javascriptu v případě, že je checkbox zaškrtlý, tak vytvářím tuhle cestu s parametrama a sem to posílám pomocí ajaxu, tady se ještě dotážu do databáze a pak se mi vrátí výsledek :-) jak se dá vložit pole do url, tak to jsem zatím neviděl

 
Nahoru Odpovědět
31.1.2014 14:58
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.