JavaScript: presuvanie options v selecte

Programovacie jazyky, rady, poradňa...
geoge046
Star
Star
Používateľov profilový obrázok
Príspevky: 608
Registrovaný: 10 aug 2005, 14:15
Bydlisko: Prievidza
Kontaktovať používateľa:

JavaScript: presuvanie options v selecte

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

Zdravím Vás,

poslednú dobu ma trápi taká záludná otázka nasledujúceho typu:
Nepoznáte nejaký JavaScript (ak vôbec takého typu existuje), pomocou ktorého by na stránke užívateľ mohol meniť poradie options v selecte.

Za pomoc vopred dík.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

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

Kód: Vybrať všetko

<script type="text/javascript">
function moveUp(selectId) {
	var selectList = document.getElementById(selectId);
	var selectOptions = selectList.getElementsByTagName('option');
	for (var i = 1; i < selectOptions.length; i++) {
		var opt = selectOptions[i];
		if (opt.selected) {
			selectList.removeChild(opt);
			selectList.insertBefore(opt, selectOptions[i - 1]);
		}
       }
}

function moveDown(selectId) {
	var selectList = document.getElementById(selectId);
	var selectOptions = selectList.getElementsByTagName('option');
	for (var i = selectOptions.length - 2; i >= 0; i--) {
		var opt = selectOptions[i];
		if (opt.selected) {
		   var nextOpt = selectOptions[i + 1];
		   opt = selectList.removeChild(opt);
		   nextOpt = selectList.replaceChild(opt, nextOpt);
		   selectList.insertBefore(nextOpt, opt);
		}
       }
}
</script>
geoge046
Star
Star
Používateľov profilový obrázok
Príspevky: 608
Registrovaný: 10 aug 2005, 14:15
Bydlisko: Prievidza
Kontaktovať používateľa:

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

ospravedlňujem sa, ale zabudol som tam pripísať že "meniť poradie myšou", také niečo by sa dalo z toho skonštruovať? Dík
zaggi
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 314
Registrovaný: 04 feb 2007, 19:32

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

ak chces pouzit existujucu vec tak skus popozerat http://extjs.com/deploy/dev/examples/samples.html alebo ine vacsie frameworky napr dojo, alebo asp.net ajax

ak by si to chcel kodit sam tak to bude dlha a strastiplna cesta :)
chrono
VIP
VIP
Používateľov profilový obrázok
Príspevky: 7127
Registrovaný: 25 dec 2006, 15:17

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

Keď som naposledy robil s ExtJs nič také tam nebolo (možno to vie nejaký plugin, ale samotné ExtJs nič také nevedelo). :)

Technicky je možné urobiť JS, ktorý pridá k tomu selcetu tlačidlá na presun tých prvkov (takých skriptov je na internete kopec). Netuším ale, či je nejaký univerzálny spôsob, ktorý by fungoval metódou drag-and-drop vo všetkých prehliadačoch (bez kompletného nasimulovania toho selectu inými elementami).
geoge046
Star
Star
Používateľov profilový obrázok
Príspevky: 608
Registrovaný: 10 aug 2005, 14:15
Bydlisko: Prievidza
Kontaktovať používateľa:

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

a môžeš mi nejakú existujúcu aplikáciu s možnosťou drag-and-drop odporučiť? Pretože vlastne čo budem mať niečo ako kategórie, kde bude záležať na poradí tých konkrétnych kategórií, a uvážil som, že najlepšie by bolo tie kategórie vypisovať pomocou select a option, a po prehadzovaní sa to odošle do databázy klikom na tlačidlo submit, ale ak by ste mi odporučili nejakú lepšiu možnosť, rád vyskúšam :)
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

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

scriptaculous, ten využíva prototype ale drag&drop je v ňom pomerne jednoduché robiť: http://wiki.github.com/madrobby/scriptaculous/draggable
Napísať odpoveď