Ik heb nu 2 listboxen/multiple selectboxen (hoe je ze ook noemt).

In de ene worden waarden uit een tabel ingeladen die als mogelijkheid gelden. Wanneer deze waarden zijn geselecteerd is het mogelijk om op een knop te klikken waardoor ze in een box ernaast komen te staan. Vervolgens staat er een INSERT query op deze box. Dit werkt nu wel maar alles in die box moet nog eens geselecteerd worden en dat wil ik niet. Wat ik wil is dat alles wat er in staat sowieso de database in gaat. Dit is de code die ik nu heb en ik hoop dat iemand kan helpen.

<?php
$sql =
"SELECT
bra_brand
FROM
tbl_brand";

$result = mssql_query($sql);
$rows = mssql_num_rows($result);

echo '<select style="width:70px" name="optional_brands" id="A_s" multiple="multiple" size="7" ondblclick="SwitchBox (this, document.getElementById(A_a)">';

for($i=0;$i<$rows;$i++) {
$optie = mssql_fetch_array($result);
echo '<option>'.$optie['bra_brand'].'</option>';
}
echo '</select>';
?>
</div></td>
<td align="center" width="6%">
<br><input name="button2" type="button" onClick="SwitchBox (document.getElementById('A_a'), document.getElementById('A_s'))" value=" < " />
</td>
<td width="45%" rowspan="2"><span class="style8"> &nbsp;Chosen:</span><br>
<?php
$sql =
"SELECT
bra_brandid,
bra_brand
FROM
tbl_brand";

$result = mssql_query($sql);
$rows = mssql_num_rows($result);

echo '<select style="width:70px" name="bra_brandid[]" id="A_a" multiple="multiple" size="7" ondblclick="SwitchBox (this, document.getElementById(A_s))" selected>';

for($i=0;$i<$rows;$i++) {
$optie = mssql_fetch_array($result);
echo '<option value='.$optie['bra_brandid'].'>'.$optie['bra_brand'].'</option>';
}
echo '</select>';


$maxid = "SELECT MAX(pjt_projectid) FROM tbl_project";
$projectid= mssql_query($maxid);
echo $_POST["bra_brandid"];
while (list ($pjt_projectid) = mssql_fetch_row($projectid))
{
echo $pjt_projectid;
echo $optie['bra_brandid'];

$bra_brandid = $_POST["bra_brandid"];
foreach($bra_brandid as $key => $value)

{
$query2= "INSERT INTO tbl_brand2project
(b2p_projectid,
b2p_brandid)";

$query2 .="VALUES (";
$query2 .= $pjt_projectid .",";
$query2 .= $value .")";
print '<pre>';
print $query2;
print '</pre>';
mssql_query($query2) or die ("FOUT in query");
}

}
?>
*bump* (oorspronkelijke vraag is gewijzigd)
Je zal de nieuwe selectbox zo moeten doen dat je selected="selected" toevoegd aan elke option in je select. Alleen de selected values worden meegestuurd.
Dat gaat niet, als je meerdere waarden apart overzet, dan is alleen telkens de laatste geselecteerd
Je kan met JS elke option langslopen en op selected="selected" zetten. (ik weet niet precies hoe dat gaat, maar ik weet wel dat dat kan)
Oké goed dan ga ik daar eens even naar zoeken, bedankt
Ik heb nu precies hetzelfde probleem, nog een oplossing kunnen vinden karel?

Mijn php is redelijk maar van JS weet ik bar weinig.
(de JS forms heb ik van een website gehaald)


Ik ga er vanuit dat als elke optie standaard geselecteerd is dus ook blauw is (van de selectie).

Is er niet een manier om zonder wel of niet selecteren de hele inhoud door te sturen?
Misschien (via JS??) alles selecteren op het moment dat submit button wordt geklikt?
Ik heb een oplossing:

<input hidden type="text" id="newList" name="newList" value="" readonly="readonly" style="border: none;">

function updateList(list, textBox) {
textBox.value = '';
for(i = 0; i < list.options.length; i++) {
if (i == 0) {
textBox.value += list.options[i].value;
} else {
textBox.value += ',' + list.options[i].value;
}
}
}

dan updatelist aanroepen bij pagina load en als je op buttons klikt (om van lijst ste verplaatsen)

window.onload = function() {
updateList(document.getElementById('list2'), document.getElementById('newList'));
}

Reageren