listbox POST-vars
Ik heb een script waarbij ik 2 listboxes heb. Met deze boxes kan ik waarden van links naar rechts verplaatsen. Nu ziet PHP mijn POST-vars hiervan niet.. Ziet iemand het probleem?
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<script type="text/JavaScript">
function RightButton_OnClick() {
var AvailableLB = document.getElementById("available[]");
var LinkedLB = document.getElementById("linked[]");
for (var i=0; i < AvailableLB.length; i++) {
if (AvailableLB.options[i].selected == true) {
LinkedLB.options[LinkedLB.length] =
new Option(AvailableLB.options[i].text,
AvailableLB.options[i].value);
AvailableLB.options[i] = null;
i=i-1;
}
}
return;
}
</script>
<script type="text/JavaScript">
function LeftButton_OnClick() {
var AvailableLB = document.getElementById("linked[]");
var LinkedLB = document.getElementById("available[]");
for (var i=0; i < AvailableLB.length; i++) {
if (AvailableLB.options[i].selected == true) {
LinkedLB.options[LinkedLB.length] =
new Option(AvailableLB.options[i].text,
AvailableLB.options[i].value);
AvailableLB.options[i] = null;
i=i-1;
}
}
return;
}
</script>
<?php // pour l'couleur
<form id="rechtselectie" name="rechtselectie" action="index.php" method="POST">
<table>
<tr>
<td>
<span class="resultkop">Niet toegewezen:</span><br>
<select class="afwezig" multiple style="width:150px;" size="10" name="available[]" id="available[]">
<option value="1">Optie 1</option>
<option value="2">Optie 2</option>
</select>
</td>
<td>
<input name="move" type="button" value="<" onClick="LeftButton_OnClick();">
<input name="move" type="button" value=">" onClick="RightButton_OnClick();">
</td>
<td>
<span class="resultkop">Toegewezen:</span><br>
<select class="aanwezig" multiple style="width:150px;" size="10" name="linked[]" id="linked[]">
<option value="3">Optie 3</option>
<option value="4">Optie 4</option>
</select>
</td>
</tr>
<tr>
<td colspan="3"><input id="submit" name="submit" type="submit" value="OK"></td>
</tr>
</table>
</form>
[code]<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (isset($_POST['linked'])) {
echo "OK";
} else {
echo "kut";
}
print_r($_POST['linked']);
print_r($_POST['available']);
}
?>
De output is;
kut
Notice: Undefined index: linked in groepsrechten.php on line 130
Notice: Undefined index: available in groepsrechten.php on line 131
function RightButton_OnClick() {
var AvailableLB = document.getElementById("available[]");
var LinkedLB = document.getElementById("linked[]");
for (var i=0; i < AvailableLB.length; i++) {
if (AvailableLB.options[i].selected == true) {
LinkedLB.options[LinkedLB.length] =
new Option(AvailableLB.options[i].text,
AvailableLB.options[i].value);
AvailableLB.options[i] = null;
i=i-1;
}
}
return;
}
</script>
<script type="text/JavaScript">
function LeftButton_OnClick() {
var AvailableLB = document.getElementById("linked[]");
var LinkedLB = document.getElementById("available[]");
for (var i=0; i < AvailableLB.length; i++) {
if (AvailableLB.options[i].selected == true) {
LinkedLB.options[LinkedLB.length] =
new Option(AvailableLB.options[i].text,
AvailableLB.options[i].value);
AvailableLB.options[i] = null;
i=i-1;
}
}
return;
}
</script>
<?php // pour l'couleur
<form id="rechtselectie" name="rechtselectie" action="index.php" method="POST">
<table>
<tr>
<td>
<span class="resultkop">Niet toegewezen:</span><br>
<select class="afwezig" multiple style="width:150px;" size="10" name="available[]" id="available[]">
<option value="1">Optie 1</option>
<option value="2">Optie 2</option>
</select>
</td>
<td>
<input name="move" type="button" value="<" onClick="LeftButton_OnClick();">
<input name="move" type="button" value=">" onClick="RightButton_OnClick();">
</td>
<td>
<span class="resultkop">Toegewezen:</span><br>
<select class="aanwezig" multiple style="width:150px;" size="10" name="linked[]" id="linked[]">
<option value="3">Optie 3</option>
<option value="4">Optie 4</option>
</select>
</td>
</tr>
<tr>
<td colspan="3"><input id="submit" name="submit" type="submit" value="OK"></td>
</tr>
</table>
</form>
[code]<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if (isset($_POST['linked'])) {
echo "OK";
} else {
echo "kut";
}
print_r($_POST['linked']);
print_r($_POST['available']);
}
?>
De output is;
kut
Notice: Undefined index: linked in groepsrechten.php on line 130
Notice: Undefined index: available in groepsrechten.php on line 131
Gewijzigd op 01/01/1970 01:00:00 door Wout van der Burg
Ik wil wel even proberen / testen, maar mis wel een stukje code zo.. :) kan je die code ergens plaatsen, zodat heen en weer schuiven ook werkt? Dan ga ik even proberen of ik je kan helpen. Zie zo namelijk de fout niet.
bij deze :) ^
name="linked[]" id="linked[]">
Wordt gezien als 1 dus niet vergelijkbaar met $_POST['linked']
Enige dat ik me afvraag is waarom op regel 38 van de snippit er een
Gewijzigd op 01/01/1970 01:00:00 door Jacco Engel
Gewijzigd op 01/01/1970 01:00:00 door Beezz
Ja dat klopt, die had ik gedaan voor de kleur.. Dus dat genegeerd worden..
Bij een selectlist namelijk, moet je de items selecteren (houd ctrl of shift vast voor het selecteren van meerdere items) alvorens die worden meegestuurd.
Ik denk aan een js oplossing, ga ik mee aan de gang. :)
Ben benieuwd naar je oplossing.. Alvast bedankt voor je moeite
(ff prototype style)
$('listbox').getElementsByTagName('option');
Enzovoort
Hoezo AJAX oplossing? Je moet met JS aan de cliënt kant zorgen dat alle items zijn geselecteerd, voor het formulier wordt verzonden. Daar komt geen AJAX bij kijken hoor.
Code (php)
1
2
3
4
5
2
3
4
5
var optList = document.getElementById('listbox').getElementsByTagName('option');
for(i=0;i<optList.length;i++)
{
optList[i].selected = 'selected' ;
}
for(i=0;i<optList.length;i++)
{
optList[i].selected = 'selected' ;
}
zoiets ongeveer :)
Maar ik zei ook ALS ;)
Gewijzigd op 01/01/1970 01:00:00 door Jacco Engel
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<script type="text/JavaScript">
function RightButton_OnClick() {
var AvailableLB = document.getElementById("available[]");
var LinkedLB = document.getElementById("linked[]");
for (var i=0; i < AvailableLB.length; i++) {
if (AvailableLB.options[i].selected == true) {
LinkedLB.options[LinkedLB.length] =
new Option(AvailableLB.options[i].text,
AvailableLB.options[i].value);
AvailableLB.options[i] = null;
i=i-1;
}
}
return;
}
</script>
<script type="text/JavaScript">
function LeftButton_OnClick() {
var AvailableLB = document.getElementById("linked[]");
var LinkedLB = document.getElementById("available[]");
for (var i=0; i < AvailableLB.length; i++) {
if (AvailableLB.options[i].selected == true) {
LinkedLB.options[LinkedLB.length] =
new Option(AvailableLB.options[i].text,
AvailableLB.options[i].value);
AvailableLB.options[i] = null;
i=i-1;
}
}
return;
}
function Select_All(){
var available = document.getElementById('available');
for (var i = 0; i < available.options.length; i++ ) {
available.options[i].selected = 'selected';
}
var linked = document.getElementById('linked');
for (var i = 0; i < linked.options.length; i++ ) {
linked.options[i].selected = 'selected';
}
}
</script>
<form id="rechtselectie" name="rechtselectie" action="str_split.php" method="POST">
<table>
<tr>
<td>
<span class="resultkop">Niet toegewezen:</span><br>
<select class="afwezig" multiple style="width:150px;" size="10" name="available[]" id="available">
<option value="1">Optie 1</option>
<option value="2">Optie 2</option>
</select>
</td>
<td>
<input name="move" type="button" value="<" onClick="LeftButton_OnClick();">
<input name="move" type="button" value=">" onClick="RightButton_OnClick();">
</td>
<td>
<span class="resultkop">Toegewezen:</span><br>
<select class="aanwezig" multiple style="width:150px;" size="10" name="linked[]" id="linked">
<option value="3">Optie 3</option>
<option value="4">Optie 4</option>
</select>
</td>
</tr>
<tr>
<td colspan="3"><input onclick="Select_All()" id="submit" name="submit" type="submit" value="OK"></td>
</tr>
</table>
</form>
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
print_r($_POST);
if (isset($_POST['linked'])) {
echo "OK";
} else {
echo "kut";
}
print_r($_POST['linked']);
print_r($_POST['available']);
}
?>
function RightButton_OnClick() {
var AvailableLB = document.getElementById("available[]");
var LinkedLB = document.getElementById("linked[]");
for (var i=0; i < AvailableLB.length; i++) {
if (AvailableLB.options[i].selected == true) {
LinkedLB.options[LinkedLB.length] =
new Option(AvailableLB.options[i].text,
AvailableLB.options[i].value);
AvailableLB.options[i] = null;
i=i-1;
}
}
return;
}
</script>
<script type="text/JavaScript">
function LeftButton_OnClick() {
var AvailableLB = document.getElementById("linked[]");
var LinkedLB = document.getElementById("available[]");
for (var i=0; i < AvailableLB.length; i++) {
if (AvailableLB.options[i].selected == true) {
LinkedLB.options[LinkedLB.length] =
new Option(AvailableLB.options[i].text,
AvailableLB.options[i].value);
AvailableLB.options[i] = null;
i=i-1;
}
}
return;
}
function Select_All(){
var available = document.getElementById('available');
for (var i = 0; i < available.options.length; i++ ) {
available.options[i].selected = 'selected';
}
var linked = document.getElementById('linked');
for (var i = 0; i < linked.options.length; i++ ) {
linked.options[i].selected = 'selected';
}
}
</script>
<form id="rechtselectie" name="rechtselectie" action="str_split.php" method="POST">
<table>
<tr>
<td>
<span class="resultkop">Niet toegewezen:</span><br>
<select class="afwezig" multiple style="width:150px;" size="10" name="available[]" id="available">
<option value="1">Optie 1</option>
<option value="2">Optie 2</option>
</select>
</td>
<td>
<input name="move" type="button" value="<" onClick="LeftButton_OnClick();">
<input name="move" type="button" value=">" onClick="RightButton_OnClick();">
</td>
<td>
<span class="resultkop">Toegewezen:</span><br>
<select class="aanwezig" multiple style="width:150px;" size="10" name="linked[]" id="linked">
<option value="3">Optie 3</option>
<option value="4">Optie 4</option>
</select>
</td>
</tr>
<tr>
<td colspan="3"><input onclick="Select_All()" id="submit" name="submit" type="submit" value="OK"></td>
</tr>
</table>
</form>
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
print_r($_POST);
if (isset($_POST['linked'])) {
echo "OK";
} else {
echo "kut";
}
print_r($_POST['linked']);
print_r($_POST['available']);
}
?>
Hartstikke bedankt Robert!!!
Wel grappig te zien dat bij id='linked[]' en id='available[]'
de [] zijn verdwenen.....
Hmmmmmm
Vergelijk het maar eens met het vorige script....
Gewijzigd op 01/01/1970 01:00:00 door Beezz
Omdat het niet practisch en niet nodig is :) niet omdat het conflicten opleverd :)
Maar soms zit een conflict in een onverwachte hoek...