Multiple select elemeinek elérése
Sziasztok!
Egy multiple select lista elemeit szeretném elérni Javascripttel. Az egész célja az lenne, hogy két lista közt tudjam ide-oda pakolászni a dolgokat, aztán az egyik lista elemeit szerver oldalon feldolgozhassam.
Adott mondjuk ez a form:És hozzá ez a javascript:Ha a multiselectek neve slct, illetve slct2 lenne - mint ahogy azt a javascriptben használtam -, tökéletesen menne a dolog, de akkor ugye szerver oldalon csak a sorban utolsó kiválasztott elemet kapnám meg.
Hogyan érem el a 'slct[]' lista elemeit?
document.urlap.slct nem jó,
document.urlap.slct[] nem jó,
document.urlap.slct[0] nem jó,
document.slct['e1'] nem jó.
Egyébként nem ragaszkodom feltétlenül a fenti kódhoz, ha van jobb megoldás... ,)
A segítséget előre is köszönöm!
■ Egy multiple select lista elemeit szeretném elérni Javascripttel. Az egész célja az lenne, hogy két lista közt tudjam ide-oda pakolászni a dolgokat, aztán az egyik lista elemeit szerver oldalon feldolgozhassam.
Adott mondjuk ez a form:
- <form method="post" name="urlap">
- <select name="slct[]" size="10" multiple>
- <option value="e1">Elem 1</option>
- <option value="e2">Elem 2</option>
- <option value="e3">Elem 3</option>
- </select>
- <select name="slct2[]" size="10" multiple>
- </select><br />
- <input type="button" value=" berak >> " onclick="atrak('be');" />
- <input type="button" value=" << kivesz " onclick="atrak('ki');" />
- <input type="submit" value=" mehet " />
- </form>
- function atrak(mod)
- {
- if ( mod == 'be' ) {
- forras = document.urlap.slct;
- cel = document.urlap.slct2;
- } else {
- forras = document.urlap.slct2;
- cel = document.urlap.slct;
- }
- forras_hossz = forras.length;
- for (i=0; i<forras_hossz; i++) {
- if ( forras.options[i].selected == true ) {
- cel_hossz = cel.length;
- cel.options[cel_hossz] = new Option(forras.options[i].text);
- }
- }
- for (i=(forras_hossz-1); i>=0; i--) {
- if ( forras.options[i].selected == true ) {
- forras.options[i] = null;
- }
- }
- }
Hogyan érem el a 'slct[]' lista elemeit?
document.urlap.slct nem jó,
document.urlap.slct[] nem jó,
document.urlap.slct[0] nem jó,
document.slct['e1'] nem jó.
Egyébként nem ragaszkodom feltétlenül a fenti kódhoz, ha van jobb megoldás... ,)
A segítséget előre is köszönöm!
submit buttony-ra
<input type="submit" value="Mehet" name="submit" onclick="selectAllElement();">
javascript-ben meg lenne egy ilyenem
function selectAllElement(){
for (var i=0; i < document.urlap.select1.length; i++) document.urlap.select1.options[i].selected=true;
}
szerver oldalon a $_POST['select1'] -be ott lesz a select1 összes eleme, nem próbáltam, csak sztem :)
Használj ID-t
...
<select name="slct2[]" size="10" id="slct2" multiple>
alakot használnád? Akkor elérheted őket így:
slct2Obj = document.getElementById("slct2");
Kösz!
Tronic, a megoldás remek, és most már működik is minden.
A végleges változatot még annyival egészítettem ki, hogy az átrakott elem értéke is átkerül:
kicsit még gondolkoztam,
print_r(explode(',',$_GET['selectArray']));
?>
<html>
<head>
<script type="text/javascript">
function finalize()
{
tempArray=new Array();
for (var i=0;i<document.test.testSelect.length;i++)tempArray[i]=document.test.testSelect.options[i].value
document.getElementById('selectArray').value=tempArray;
}
</script>
</head>
<body>
<form name='test' >
<select name="testSelect" size=10 multiple="multiple">
<option value="e1">test1</option>
<option value="e2">test2</option>
<option value="e3">test3</option>
<option value="e4">test4</option>
</select>
<input type="hidden" id="selectArray" name="selectArray" />
<input type="submit" value="mehet" onclick="finalize();" />
</form>
</body>
</html>
a hidden változóba hogyan kell js-en keresztül tömböt tölteni, értsd hogy a php-ban már ne kelljen explode-olni ?