Sende indholdet af en boks <select>
Jeg har følgende kode:------------------------------
<html>
<head>
<title>Funktion med formularbokse</title>
</head>
<body>
<script type="text/javascript">
function deleteOption(object,index) {
object.options[index] = null;
}
function addOption(object,text,value) {
var defaultSelected = true;
var selected = true;
var optionName = new Option(text, value, defaultSelected, selected)
object.options[object.length] = optionName;
}
function copySelected(fromObject,toObject) {
for (var i=0, l=fromObject.options.length;i<l;i++) {
if (fromObject.options[i].selected)
addOption(toObject,fromObject.options[i].text,fromObject.options[i].value);
}
for (var i=fromObject.options.length-1;i>-1;i--) {
if (fromObject.options[i].selected)
deleteOption(fromObject,i);
}
}
function SelectAll(fromObject) {
for (var i=0, l=fromObject.options.length;i<l;i++) {
fromObject.options[i].text,fromObject.options[i].selected = true;
}
}
</script>
<form method="post" action="formularbokssent.php">
<table>
<tr>
<td width="259" height="197" valign="top"><strong>Modtagere</strong><br>
<select multiple name="select1" size='8' style="width:200px">
</select>
</td>
<td width="225" valign="top"><strong>Elever</strong><br>
<select multiple name="select2" size='8' style="width:200px">
<?
include("db_ind.inc");
$result = mysql_query("select * from elev order by fornavn");
while ($row = mysql_fetch_array($result)) {
$fornavn = $row["fornavn"];
$efternavn = $row["efternavn"];
$brugernavn = $row["navn"];
echo "<option value='$brugernavn'>$fornavn $efternavn</option>";
}
?>
</select>
<br><input name="button2" type='button' style="width:70px;" onclick="copySelected(this.form.select2,this.form.select1)" value='< Tilføj' />
<input name="button2" type='button' style="width:70px;" onclick="copySelected(this.form.select1,this.form.select3)" value='Fjern >' /></td>
<td width="304" valign="top"><strong>Forældre</strong><br>
<select multiple name="select3" size='8' style="width:300px">
<?
include("db_ind.inc");
$result = mysql_query("select * from foraeldre order by fornavn1");
while ($row = mysql_fetch_array($result)) {
$fornavn1 = $row["fornavn1"];
$fornavn2 = $row["fornavn2"];
$brugernavn = $row["navn"];
echo "<option value='$brugernavn'>$fornavn1 og $fornavn2</option>";
}
?>
</select>
<br><input name="button4" type='button' style="width:70px;"
onclick="copySelected(this.form.select3,this.form.select1)" value='< Tilføj' />
<input name="button3" type='button' style="width:70px;"
onclick="copySelected(this.form.select1,this.form.select3)" value='Fjern >' /></td>
</tr>
</table>
<p><input type="button" value="Send data" onClick="SelectAll(this.form.select1);submit()">
</form>
</body>
</html>
-----------------------------
Og min "formularbokssent.php":
--------------------
<?
$helst = $_REQUEST["select1"];
echo "$helst";
?>
<?
$all = $_REQUEST["select1"];
$stoerrelse = sizeof($all);
for ($i = 0; $i < $stoerrelse; $i++) {
$tekst = "$all[$i], ";
echo "Navn: $tekst<br>";
}
?>
-------------------------
Som det er lige nu, blive kun 1 af værdierne sendt over. Jeg har også prøvet med at lave det om med til <select1[]>, men så kan jeg ikke få java scriptet til at fungere.
Det skulle jo gerne være så at man kan tilføjge elementer til <select1> og så uafhængig af om felterne i <select1> er markeret eller ej, så bliver de alle sendt til "formularbokssent.php".
En anden ting er også at det kunne være rart hvis java scriptet ikke fjerne dem fra <select2> og <select3>, men bare kopierede dem.
