Autor Zpráva
Prkny
Profil
Dobrý den,

na e-shopech se setkávám s formulářem GET, který po odeslání vytvoří URL adresu na kterou se přesměruje.
Adresa s formulářem je např. http://www.domena.cz/lednicky/
Adresa po vybrani dvou položek a odeslání formuláře: http://www.domena.cz/lednicky/zn=BOSCH,ELECTROLUX

Jak to udělat ?

Zde je form:
      <form action="" method="get">
      <li><label><input name="filter[]" value="BOSCH" type="checkbox"></label></li>
      <li><label><input name="filter[]" value="CANDY" type="checkbox"></label></li>
      <li><label><input name="filter[]" value="ELECTROLUX" type="checkbox"></label></li>
      <li><label><input name="filter[]" value="GORENJE" type="checkbox"></label></li>
       <button type="submit" class="" title="Zobrazit">Zobrazit</button>
       </form>
candiess
Profil
Prkny:
Přečti si něco o onsubmit="" případně o onclick=""

Nakopnu tě

<button type="submit" class="" title="Zobrazit">Zobrazit</button>
<button type="submit" class="" onclick="create_url()" title="Zobrazit">Zobrazit</button>

//JS část:
function create_url() {
//posbírání zaškrklých checkboxů
//vytvoření url

//a přesměrování
location.href = nova_url;
}
Prkny
Profil
Možná nevhodná otázka, ale musím se zeptat, bez JS to asi nejde ? Jde o to jak by se to mělo chovat při vypnutém JS ?
nemeja
Profil
šlo by to i pomocí php, porovnávat hodnoty checkboxů a potom to dle těchto parametrů seřadit.

Prkny:
Jde o to jak by se to mělo chovat při vypnutém JS ?
Pokud nebude mít zaplej PHP, tak stejně budeš muset to řešit PHP.
Prkny
Profil
to je pravda metodu get poslat do externiho souboru a v něm z toho udělat požadovanou url adresu
nemeja
Profil
Prkny:
moc to komplikujete, staci dat odeslat a GET vam vytvori adresu. Neresil bych jestli to je v tvaru zn=bosch,lg. GET vyhodi treba ?lg=1&bosch=0&sony=1 a s tim bych pracoval
Prkny
Profil
abych s nimi mohl lépe pracovat rad bych znal ty názvy proměnných ... tedy alespoň ?zn=lg&zn=bosch&zn=sony... ale to tim asi neudelam ... ??
ale to nevím zda se to nepřepisuje a promena zn nebude poslední parametry tedy pouze sony

<input type="checkbox" name="zn[]" value="lg" />&nbsp;Skladem</label>
<input type="checkbox" name="zn[]" value="sony" />&nbsp;Akční nabídka</label>
<input type="checkbox" name="zn[]" value="bosch" />&nbsp;Novinky</label>
<input type="checkbox" name="zn[]" value="samsung" />&nbsp;Výprodej</label>
peta
Profil
candiess:
<button type="submit"
??? input type submit znam, ale button. A kdyz by slo o input, pak tam onclick nema, co delat.

nemeja
Pokud nebude mít zaplej PHP, tak stejně budeš muset to řešit PHP.
:)

candiess:
<form method="GET">
<label><input type="checkbox" name="zn[]" value="lg" />&nbsp;Skladem</label><br>
<label><input type="checkbox" name="zn[]" value="sony" />&nbsp;Akční nabídka</label><br>
<label><input type="checkbox" name="zn[]" value="bosch" />&nbsp;Novinky</label><br>
<label><input type="checkbox" name="zn[]" value="samsung" />&nbsp;Výprodej</label><br> 
<input type=submit>
</form>
FF12 vytvori file:///C:/x/h-form.htm?zn[]=lg&zn[]=sony&zn[]=bosch. Nevim, kde vidis problem.
IE9 file:///C:/x/h-form.htm?zn%5B%5D=sony&zn%5B%5D=samsung

Jestli to chces propojit, tak onsubmit="return funkce(this)" a script
<script>
function funkce(form)
{
inp = form['zn[]']
zn = []
for (i=0;i<inp.length;i++)
  {
  if (inp[i].checked)
    {
    zn[zn.length] = inp[i].value;
    }
  }
zn = zn.join(',');
// jiny_form.zn.value = zn
// jiny_form.submit();
alert('zn = ' + zn);
return false; // tento form odeslat False
}
</script>
Chamurappi
Profil
Reaguji na peta:
??? input type submit znam, ale button.
Tak se dovzdělej. Vyhledávače znáš, ne?


Reaguji na Prknyho:
K čemu ta upravená adresa bude?

rad bych znal ty názvy proměnných
Ty se přeci normálně předávají. Akorát PHP ti je nezpřístupňuje, když se jmenují všechny stejně a nemají hranaté závorky. Uvedený kód se zn[] by měl fungovat.
peta
Profil
Formuláře » button
Aha, ok. Zajimave. Nejspis jsem to u buttonu nenastavoval, pripadne ho vubec nepouzivam, protoze se zobrazoval odlisne tusim v IE nez bezny inptut button.
Prkny
Profil
Reaguji na Chamurappiho:
K čemu ta upravená adresa bude?
Říkal jsem si, že to bude vypadat lépe v té url adrese, ale asi je to každému uživateli (návštěvníkovi) jedno..

Ty se přeci normálně předávají. Akorát PHP ti je nezpřístupňuje, když se jmenují všechny stejně a nemají hranaté závorky. Uvedený kód se zn[] by měl fungovat.
Ano je to tak v php jsem je dal do kupy implode(',', $_GET[zn]);

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: