Autor Zpráva
MilanJ
Profil
Mám <SELECT>...</SELECT>, který obsahuje data načtená z db.
vedle něj mám druhý SELECT, který je prázdný.

Jak zařídit, aby se hodnoty z jednoho SELECTu přenesly kliknutím na něco (např.tlačítko PŘIDAT) do druhého?
MilanJ
Profil
...samozřejmě se nesmí přenést ty, co tam už jsou.
Oswald
Profil
Nejjednodušeji nějak takto:


<select name="from" id="from">
<option>hodnota 1</option>
<option>hodnota 2</option>
<option>hodnota 3</option>
</select>

<select name="to" id="to"></select>

<button onclick="moveOption()">presun</button>

<script type="text/javascript">
function moveOption() {
var from = document.getElementById('from');
document.getElementById('to').appendChild(from.options[from.selectedIndex]);
}
</script>


Určitě bych tam přidal alespoň kontrolu, jestli je ve "from" ještě nějaký option.

Update

Pokud ty optiony chceš pouze kopírovat (nepřenášet), tak by ta funkce potom vypadala takhle:

function moveOption() {

var from = document.getElementById('from');
if (!from.options[from.selectedIndex].moved) {
document.getElementById('to').appendChild(from.options[from.selected Index].cloneNode(true));
from.options[from.selectedIndex].moved = true;
}
}
MilanJ
Profil
Oswald
Díky za scriptík, přesouvání funguje jak má, jen bych potřeboval, aby fungovalo i přesouvání opačným směrem...
Já se v JS moc nevyznám....:-/

Taky by nebylo špatný, kdyby ten druhý SELECT...ten se do něj přesouvají položky, měl už dopředu nějakou šířku a nebyl úzký na 1 znak.

Kde potom najdu hodnoty, které budou v pravém SLECTu? ...potřebuji je zapsat do db.
Oswald
Profil
potřeboval, aby fungovalo i přesouvání opačným směrem...

Analogicky - uprav si třeba tu funkci tak, aby se jí objekty "from" a "to" předávaly jako argumenty.

Kde potom najdu hodnoty, které budou v pravém SLECTu?

V $_GET['NAME_PRAVEHO_SELECTU'] (případně _POST)
MilanJ
Profil
A ještě jedna otázka... jak zařídit, aby se položky levého SELECTU (Select je načtený z db a vybrané položky označené - může jich být víc) rovnou zobrazili v části pravé, aby uživatel věděl, co už má uloženo v db?
MilanJ
Profil
Kde potom najdu hodnoty, které budou v pravém SLECTu?
V $_GET['NAME_PRAVEHO_SELECTU'] (případně _POST


Problém je ale ten, že pokud nhodnoty nebudou označeny, neodešlou se přes $_GET/$_POST.
Jak zařídím, aby se odeslaly ať už jsou nebo nejsou označeny?
Toto téma je uzamčeno. Odpověď nelze zaslat.