Hallo,

Ik probeer de waarden van een selectfield (multiple) in een javascript array te proppen, maar dit lukt mij niet. Ziet iemand wat ik verkeerd doe?


<table>
<tr>
	<td>
		<select name="email" id="email" multiple="multiple" size="5" style="width:150px;" >
		<?php 
		$rsgebr = mysql_query("SELECT ".GEBR_NAAM.", ".GEBR_TUSVG.", ".GEBR_ACHTERNAAM.", ".GEBR_EMAIL." FROM ".GEBR." WHERE ".GEBR_WERKZAAM." = 1 ORDER BY ".GEBR_ACHTERNAAM);
		while($rowgebr = mysql_fetch_array($rsgebr)) { ?>
			<option value="<?php echo $rowgebr[GEBR_EMAIL]; ?>"><?php echo $rowgebr[GEBR_ACHTERNAAM].", ".$rowgebr[GEBR_NAAM]." ".$rowgebr[GEBR_TUSVG]; ?></option>
		<?php } ?>
		</select>
	</td>
</tr>
</table>
<script type="text/JavaScript">
var selected= new Array();
var sum="";
function getMultipleSelection(elementName,array){ 
    var mySelect = document.getElementsByName[elementName];
    for(j = 0; j  < mySelect.options.length; j++) { 
        if(mySelect.options[j].selected) { 
            selected.push(mySelect.options[j].value); 
        } 
    } 
    if(array != 'true') return selected.toString(); 
    else return selected; 
}
getMultipleSelection('email',true);
for(var j = 0; j < selected.length; ++j) {
    if (selected.options[j].selected==true) {
        sum += '&srvcnr'+j+'='+selected.options[j].value;
    }
} 
</script>


edit;
Ik krijg de volgende foutmelding volgens IE;

Bericht: 'options' is leeg of geen object
Regel: 1281
Teken: 17
Code: 0
URI: www.bla.nl
mySelect.options.length
vervang dat eens met
mySelect.length
??
dit leest uit hoeveel opties er in mySelect staan.
dan kan je met mySelect[] die optie uitlezen.

hope this helps

ps.
firefox + webdevelopers-toolbar heeft een mooie controle op je javascript, en geeft weer of en waar die fout gaat.
jaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa hij doet het! :) :)

Het weas heel iets anders;
Ik heb hem gaandeweg uit de functie gehaald met debuggen, maar firefox hielp al heel veel;


var selectie = new Array();
var sum2 = '';
var mySelect = document.getElementById('email');
for(var j = 0; j < mySelect.options.length; j++)
{ 
    if(mySelect.options[j].selected == true)
    { 
        selectie.push(mySelect.options[j].value); 
    } 
} 
for(var k = 0; k < selectie.length; k++) {
    sum2 += '&email'+k+'='+selectie[k];
}
je hebt van getElementByName, ById gemaakt? thats it??
Nee kijk ook goed naar de laatste for-lus
De larray die ik zelf aanmaak (selectie) heeft geen options.. :)
mooi dat het nu werkt :D (Y)

Reageren