Autor Zpráva
Pavel Kr.
Profil *
Dobrý den,
mám rozdělaný formulář pro ukládání společenských akcí do databáze. U položek jako kraj, město, místo jsou selectboxy a pro uživatele je strašně nepohodlné vybírat z x stovek měst, míst... řešením je, jak jsem se dočetl AJAX.
Potřebuji když vyberu ze selectboxu kraj, tak se mi automaticky zobrazí selectbox z městy pouze z toho kraje. Vyberu město a zobrazí se mi třeba místa atd... no a to celé pak uložím do databáze.

Neznáte nějaký tutoriál, příklady, články v čj nebo nemáte někdo zkušenosti s tímto problémem? Budu rád za každou reakci.
Chamurappi
Profil
Reaguji na Pavla Kr.:
pro uživatele je strašně nepohodlné vybírat z x stovek měst, míst… řešením je, jak jsem se dočetl AJAX
Pokud je jedinou motivací pohodlnost výběru, není AJAX nutný, data mohou být ve stránce připravena od začátku — pokud jich není příliš mnoho.

Při použití AJAXu budeš potřebovat skript na straně serveru, který dodá HTML kód se <select>em — a ten plácneš do innerHTML nějakého elementu (nalezeného třeba přes document.getElementById). Je to docela jednoduché, zkus něco splácat dohromady a až ti to nebude fungovat, popostrčíme tě :-)
Pavel Kr.
Profil *
Zatím mám takový selectbox:

<?php
$array = array(
    'Praha' => array(
					'Praha 1' => 'Praha 1',
					'Praha 1' => 'Praha 1',
					'Praha 1' => 'Praha 1',
					'Praha 1' => 'Praha 1',
					), 
		'Brno' => array(
					'Brno 1' => 'Brno 1',
					'Brno 1' => 'Brno 1',
					'Brno 1' => 'Brno 1',
					'Brno 1' => 'Brno 1',
					'Brno 1' => 'Brno 1',
					), 
		'Ostrava' => array(
					'Ostrava 1' => 'Ostrava 1',
					'Ostrava 1' => 'Ostrava 1',
					'Ostrava 1' => 'Ostrava 1',
					'Ostrava 1' => 'Ostrava 1',
					'Ostrava 1' => 'Ostrava 1',
					),
  	Liberec' => array(
					'Liberec 1' => 'Liberec 1',
					'Liberec 1' => 'Liberec 1',
					'Liberec 1' => 'Liberec 1',
					'Liberec 1' => 'Liberec 1',
					'Liberec 1' => 'Liberec 1',
					'Liberec 1' => 'Liberec 1',
					'Liberec 1' => 'Liberec 1',
					       ),
								),	               	                 				               	                 				
		'Další' => array(
					'Česká republika' => 'Česká republika',
					'Evropa' => 'Evropa',
					'Amerika' => 'Amerika',
					'Asie' => 'Asie',
					'Austrálie a Nový Zéland' => 'Austrálie a Nový Zéland',
			),  
				);
$select = "\n" . '<select name="obec" id="obec">';
$select .= "\n" . '<option value="">Vyberte obec</option>';
foreach($array as $region => $mikro)
	{
		$select .= "\n\t" . '<optgroup label="' . $region . '">'; 
		foreach($mikro as $klic => $nazev)
			{
				$selected = '';
				if((!empty($_POST['obec'])) && ($_POST['obec'] == $klic))
					{
						$selected =  ' selected';
					}
				$select .= "\n\t\t" . '<option value="' . $klic . '"' . $selected . '>' . $nazev . '</option>'; 
			}
		$select .= "\n\t" . '</optgroup>';
	}
$select .= "\n" . '</select>';
echo $select;
?>


Toto funguje dobře. Od AJAXU jsem teda asi upustil, ale potřeboval bych teda nějak popostrčit jak takovéto dva selectboxy na sebe "navázat". Uživatel vybere město, dejme tomu Kolín a chci aby to automaticky do dalšího selectboxu vybralo kraj Středočeský.

Nevím jestli mít všechna města nějak předdefinovaná v databázi a kraje k nim nějak automaticky doplňovat?

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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

0