Autor Zpráva
okolojdouci
Profil *
Mám seznam asi stovky dostupných položek, ze kterých chci ve formuláři umožnit vyvbrání libovolného počtu.
Jako nejpohodlnější řešení se mi jeví dva selecty (multiselect) vedle sebe, v pravém dostupné položky, v levém vybrané položky, mezi tím tlačítka Přidat, Odebrat.

Nejsem zrovna mistr světa v JS. Poradíte, jak tlačítkem přesouvat více vybraných položek z jednoho selectu do druhého?
okolojdouci
Profil *
plus by se ještě hodilo Přidat vše, což bude nějaký foreach, ale to myslím JS neumí.
okolojdouci
Profil *
Našel jsem http://www.linuxsoft.cz/script_detail.php?id_script=432
okolojdouci
Profil *
Ještě s tím zápasím.

Jestli jsem správně pochopil, tak abych mohl phpkem načíst vybrané položky <selectu>, musí mít name = "nazev[]"
Když to tak ale pojmenuju, přestane mi ten odkázaný JS fungovat. Má to řešení?
Kajman_
Profil *
Zkuste implementovat následující změny:
var SelectFrom = eval('document.main_form.'+MoveFrom);

var SelectFrom = document.main_form[MoveFrom];


Pak v MoveFrom můžete mít závorky.
okolojdouci
Profil *
Kajman:

Tam kde chci položku odebrat, zmizí, to už je ok. Ale neproběhne to přidání položky do druhého seznamu (mezi dvěma alerty). A pochopitelně to proběhne jen jednou, provádění skriptu tí momentem končí.

    for (i=0; i<SelectFrom.options.length; i++) {

      if(SelectFrom.options[i].selected) {
        var name = SelectFrom.options[i].text;
        var ID = SelectFrom.options[i].value;
        SelectFrom.options[i] = null;
          alert ("1");
        SelectTo.options[SelectTo.options.length]=new Option (name,ID);
          alert ("2");
        i=i-1;
      }
    }
Tori
Profil
okolojdouci:
Všude to je potřeba upravit na form["jmeno[]"] - ve funkcích i onclick handlerech. Akorát u těch skrytých polí je trochu divné, aby se jmenovaly "AddAdmins[]", ale kdyby vám to nevadilo, tak ve funkci MoveOption může být
	if (ToDo=='Add') {
		container = document.main_form[(ToDo+MoveTo)];
	}
Kajman_
Profil *
U ostatních prvků formuláře, udělejte stejnou změnu.
okolojdouci
Profil *
Kajman, Tori:
Funguje, díky moc.

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:

0