Autor Zpráva
novakr
Profil
Dobrý den,

po delší prohrabávání textů o JS a příkladů jsem se rozhodl vás požádat o pomoc. Potřebuji vytvořit formulář, který pomocí PHP odesílám na server a v input, který bez obnovení stránky ovlivní výpis optionů v selectu. Data budou tahaná z tabulek na serveru, nikolv stacionární.
Příklad takového formuláře:
Zapíšu do formuláře PSČ a to mi ovlivní výpis optionů v selectu MĚSTO.
Snad je to srozumitelné a bude někdo umět poradit...

Díky moc za návrhy.
Tori
Profil
novakr:
Zapíšu do formuláře PSČ a to mi ovlivní výpis optionů v selectu MĚSTO
Jakým způsobem ovlivní - vybere první možnost, který má jako atribut value toto PSČ, anebo vyhodí ze selectu všechny možnosti s odlišným PSČ? (nebo ještě jinak?)
Pokud chcete tu první variantu, podívejte se na vlastnosti prvků select a option. Pokud druhou, tak bych si buď uložila do JS objekt s PSČ a jim odpovídajícími názvy obcí (pokud by jich bylo max. několik set), anebo je podle zadaného PSČ stahovala ajaxem ze serveru.
novakr
Profil
Jde mi právě o tu druhou možnost, kdy dle zapsaného PSČ v <input> budu mít v dalším selectu jen výpis MĚST odpovídající PSČ. To celé bude v jediném formuláři, který pak pomocí php scriptu odešlu. Prakticky by to měla být eliminace odlišně zapsaných měst (Jablonec nad Nisou, Jablonec n./N., apod) a taková malá nápověda. Dokázal bych to udělat v PHP na kroky, ale chci to udělat přívětivější pro uživatele.
Tori
Profil
novakr:
Prakticky by to měla být eliminace odlišně zapsaných měst (Jablonec nad Nisou, Jablonec n./N., apod) a taková malá nápověda
Aha, a co kdybyste to udělal jako našeptávač, který umožní zadat PSČ nebo začátek názvu? S tím, že pokud první znak je číslice, tak se počká, než bude zapsaných všech 5 číslic a pak to teprv ukáže možnosti; a pokud první znak je písmeno, tak třeba už po dvou napsaných znacích začne napovídat (nejkratší název české obce má dva znaky).
Ještě by to mohlo být udělané tak, že s vypnutým JS bude vidět jen <select> s názvy obcí. JavaScript pak zobrazí textový <input>, schová <select> a načte z něj data do pole, které pak použije pro našeptávač:
[ {'psc': '10001', 'nazev': 'Praha 1'}, {'psc': '10002', 'nazev': 'Praha 2'}, ... ]
novakr
Profil
Tori:
Už jsem nad našeptávačem přemýšlel a některé řešení jsem již našel. Ovšem v tabulce na serveru máme k městu přiřazené i okresy a kraje pro potřeby statistiky. Navíc v ČR není PSČ jednoznačné. Proto bych rád první pole pro PSČ a po zapsání vyhodit do selectu už jen konkrétní města/vesnice k výběru. Jak říkám, uměl bych to vyřešit formou kroků při odeslání údaje o zapsaném PSČ na server a ten by mi vrátil hodnoty do selectu. Ovšem ke zjednodušení uživatelům to dělám složitější sobě :-). Proto mi jde o takové konkrétní řešení.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

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