Waarden in een listbox opslaan in db
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.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?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>';
?>
$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"> Chosen:</span><br>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?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");
}
}
?>
$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");
}
}
?>
Gewijzigd op 01/01/1970 01:00:00 door Karel
*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
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?
Gewijzigd op 01/01/1970 01:00:00 door Flip --
<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.value;
} else {
textBox.value += ',' + list.options.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'));
}