form select -> option vytvori novy select

Programovacie jazyky, rady, poradňa...
DeeJay3
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 254
Registrovaný: 22 dec 2008, 19:45
Kontaktovať používateľa:

form select -> option vytvori novy select

Príspevok od používateľa DeeJay3 »

cawte poradite mi? neviem ako na to.... :? .. mam select ktory mi vypise v option vsetky kategorie ktore mam v db v tabulke kategorie ktora obsahuje id kategorie a nazov kategorie (value pre tie option = id kategoria)....dalsia tabulka su podkategorie a tam je id podkategorie nazov a a id kategorie ku ktorej patri ....

ten prvy bude dany select a podla option ktoru vyberie mu vypise ten druhy select s moznostami ktore si moze vybrat

potrebujem to aby ked pridavam tovar tak potrebujem kategoriu a podkategoriu tovaru....a tak podla prveho selectu vyberiem do druheho selectu vsetky podkategorie pri ktorych je kategoria (id kategorie) vybrana z prveho selectu....

nechcem refresh stranky...pomose mi niekto?
caesar1987
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3001
Registrovaný: 02 okt 2005, 0:57
Bydlisko: Nové Zámky
Kontaktovať používateľa:

Re: form select -> option vytvori novy select

Príspevok od používateľa caesar1987 »

bu javascript - to by ale pri vela kategoriach zabralo vela miesta v kode
alebo ajax, ten by bol ale pri malom mnozstve kategorii a podkategorii asi pomalsi

takze to je na tebe :)
DeeJay3
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 254
Registrovaný: 22 dec 2008, 19:45
Kontaktovať používateľa:

Re: form select -> option vytvori novy select

Príspevok od používateľa DeeJay3 »

ako by si to spravil javascriptom?...aspon postup pretoze vobec mi nic nenapada...
caesar1987
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3001
Registrovaný: 02 okt 2005, 0:57
Bydlisko: Nové Zámky
Kontaktovať používateľa:

Re: form select -> option vytvori novy select

Príspevok od používateľa caesar1987 »

budes mat prvy select. ten bude mat on change funkciu, ktora

vytvori kod novych optionov pre druhy select. a druhy select vlozi napr do divu (document.getElementById)
DeeJay3
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 254
Registrovaný: 22 dec 2008, 19:45
Kontaktovať používateľa:

Re: form select -> option vytvori novy select

Príspevok od používateľa DeeJay3 »

a v tej funckii si mam vsetky podkategorie vytiahnut do pola a tak ich vypisat php-ckom do js? a ces switch(id_kategoria) v js vytvorit select?

//autoeditácia príspevku (23 Júl 2010, 13:47)
takze spravil som to nejak takto:

Kód: Vybrať všetko

funkcia:
<script language="javascript"> 
function setOptions(o){ 
	var podkategoria_produktu = document.my_form.podkategoria_produktu; 
	podkategoria_produktu.options.length = 0; 
	
	<?php 
	$sql_kategorie = mysql_query("SELECT * FROM kategorie ORDER BY id_kategoria");
	if($sql_kategorie!==false) { 
		while ($riadok_kat = mysql_fetch_assoc($sql_kategorie)){ 
   		echo "\tif (o == \"".$riadok_kat['id_kategoria']."\"){\n";
   		echo "\t\tpodkategoria_produktu.options[podkategoria_produktu.options.length] = new Option(\" \");\n";
   		
   		$sql_podkategorie = mysql_query("SELECT * FROM podkategorie WHERE kategoria=".$riadok_kat['id_kategoria']." ORDER BY nazov_podkategoria");
			if($sql_podkategorie!==false) { 
   			while ($riadok_pod = mysql_fetch_assoc($sql_podkategorie)){
   			 echo "\t\tpodkategoria_produktu.options[podkategoria_produktu.options.length] = new Option(\"".$riadok_pod['nazov_podkategoria']."\",\"value ".$riadok_pod['id_podkategoria']."\");\n";
   			}
   		} 
   		
   		echo "\t}\n";
   	}
   }
   ?>
} 
</script>
formular:

Kód: Vybrať všetko

<?php
echo 'patrí ku kategórii: ';
				
					echo '<select name="kategoria_produktu" onchange="setOptions(document.my_form.kategoria_produktu.options[document.my_form.kategoria_produktu.selectedIndex].value);" size="1">';
					echo '<option value=""></option>';
					$sql_kategorie = mysql_query("SELECT * FROM kategorie ORDER BY nazov_kategoria");
					if($sql_kategorie!==false) { 
   					while ($riadok = mysql_fetch_assoc($sql_kategorie)){ 
   						echo '<option value="'.$riadok['id_kategoria'].'">'.$riadok['nazov_kategoria'].'</option>';
   					}
   				}
					echo '</select><br>';
					
					echo 'patrí k podkategórii: ';
					echo '<select name="podkategoria_produktu" size="1">';
					echo '<option value=""></option>';
					echo '</select>';
?>
//autoeditácia príspevku (23 Júl 2010, 14:02)
hmmm ten vytvoreny select mi tie value neposle :( :( :cry:
mohol by som mat chybu v php ale ani takto "na tvrdo nadefinovane" mi neposle value vybrany s druheho selectu :(

original funkcia je takato:

Kód: Vybrať všetko

function setOptions(o){ 
	var podkategoria_produktu = document.my_form.podkategoria_produktu; 
	podkategoria_produktu.options.length = 0; 
	if (o == "1"){ 
		podkategoria_produktu.options[podkategoria_produktu.options.length] = new Option(" ");
		podkategoria_produktu.options[podkategoria_produktu.options.length] = new Option("1 podkategoria(1)","value 1"); 
		podkategoria_produktu.options[podkategoria_produktu.options.length] = new Option("2 podkategoria(1)","value 2"); 
	} 
	if (o == "2"){
		podkategoria_produktu.options[podkategoria_produktu.options.length] = new Option(" "); 
		podkategoria_produktu.options[podkategoria_produktu.options.length] = new Option("1 podkategoria(2)","value 1"); 
		podkategoria_produktu.options[podkategoria_produktu.options.length] = new Option("2 podkategoria(2)","value 2"); 
	} 
	if (o == "3"){
		podkategoria_produktu.options[podkategoria_produktu.options.length] = new Option(" "); 
		podkategoria_produktu.options[podkategoria_produktu.options.length] = new Option("1 podkategoria(3)","value 1"); 
		podkategoria_produktu.options[podkategoria_produktu.options.length] = new Option("2 podkategoria(3)","value 2");
		podkategoria_produktu.options[podkategoria_produktu.options.length] = new Option("3 podkategoria(3)","value 3");  
	} 
} 
Napísať odpoveď