[AJAX] Waarde van radio button wordt niet goed meegepost
De waarde van de gecheckte radiobutton klopt niet.
Hij geeft steeds de waarde aan van de eerste keuze.
Wie kan mij helpen. Heb er al een aantal dagen aan gezwoegd en zie daardoor de oplossing niet meer.
Dit is mijn php-file waarin de poll staat (wordt aangemaakt in een cms):
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
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
// Formulier
echo '
<div id="ajaxPoll">
<form action="javascript:postPoll(document.getElementById(\'myform\'));" name="myform" id="myform">
<p>
';
// De antwoorden selecteren
$select02 = "SELECT * FROM wt_poll_antwoorden WHERE poll_ID='".$row["ID"]."' ORDER BY ID";
$query02 = QueryDb($select02);
// De antwoorden 1 voor een als radio's echo'en
while($row02 = mysql_fetch_array($query02)){
echo '
<input type="radio" name="myradio" value="'.$row02["ID"].'" class="checkbox" />'.$row02["antwoord"].'<br />
';
}
echo ' </p>
<input type="hidden" value="'.$row["ID"].'" name="poll_ID" id="poll_ID" />
<input type="button" name="button" value="stem!" class="submit" onclick="javascript:postPoll(this.parentNode);" />
</form>
<span name="myspan" id="myspan"></span>
</div>
';
echo '
<div id="ajaxPoll">
<form action="javascript:postPoll(document.getElementById(\'myform\'));" name="myform" id="myform">
<p>
';
// De antwoorden selecteren
$select02 = "SELECT * FROM wt_poll_antwoorden WHERE poll_ID='".$row["ID"]."' ORDER BY ID";
$query02 = QueryDb($select02);
// De antwoorden 1 voor een als radio's echo'en
while($row02 = mysql_fetch_array($query02)){
echo '
<input type="radio" name="myradio" value="'.$row02["ID"].'" class="checkbox" />'.$row02["antwoord"].'<br />
';
}
echo ' </p>
<input type="hidden" value="'.$row["ID"].'" name="poll_ID" id="poll_ID" />
<input type="button" name="button" value="stem!" class="submit" onclick="javascript:postPoll(this.parentNode);" />
</form>
<span name="myspan" id="myspan"></span>
</div>
';
en dit is de javascript:
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
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
function postPoll(obj) {
var poststr = "?poll_ID=" + encodeURI( document.getElementById("poll_ID").value )
+ "&stem=" + encodeURI( document.getElementById("stem").value )
;
makePollRequest('ajaxPoll.php', poststr);
}
function makePollRequest(url, parameters) {
http_request = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
// set type accordingly to anticipated content type
//http_request.overrideMimeType('text/xml');
http_request.overrideMimeType('text/html');
}
}
else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {}
}
}
if (!http_request) {
alert('Cannot create XMLHTTP instance');
return false;
}
alert(url + parameters);
http_request.onreadystatechange = alertPollContents;
http_request.open('POST', url + parameters, true);
http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http_request.setRequestHeader("Content-length", parameters.length);
http_request.setRequestHeader("Connection", "close");
http_request.send(parameters);
}
function alertPollContents() {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
//alert(http_request.responseText);
result = http_request.responseText;
document.getElementById('ajaxPoll').innerHTML = result;
}
else {
alert('Er is een probleem opgetreden met het opvragen van de gegevens.');
}
}
}
var poststr = "?poll_ID=" + encodeURI( document.getElementById("poll_ID").value )
+ "&stem=" + encodeURI( document.getElementById("stem").value )
;
makePollRequest('ajaxPoll.php', poststr);
}
function makePollRequest(url, parameters) {
http_request = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
// set type accordingly to anticipated content type
//http_request.overrideMimeType('text/xml');
http_request.overrideMimeType('text/html');
}
}
else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {}
}
}
if (!http_request) {
alert('Cannot create XMLHTTP instance');
return false;
}
alert(url + parameters);
http_request.onreadystatechange = alertPollContents;
http_request.open('POST', url + parameters, true);
http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http_request.setRequestHeader("Content-length", parameters.length);
http_request.setRequestHeader("Connection", "close");
http_request.send(parameters);
}
function alertPollContents() {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
//alert(http_request.responseText);
result = http_request.responseText;
document.getElementById('ajaxPoll').innerHTML = result;
}
else {
alert('Er is een probleem opgetreden met het opvragen van de gegevens.');
}
}
}
Gewijzigd op 01/01/1970 01:00:00 door Tom Hes
Je zou je opties binnen een div kunnen zetten, en dan met getElementsByTagName('input') alle radiobuttons kunnen selecteren. Vervolgens zoek je welke 'checked' is (of was het 'selected'? weet niet meer) en daarvan stuur je de 'value'-waarde op :)
Ik had wat gevonden alleen kreeg ik dat niet aan de praat.
Kun je me helpen waar ik dat tussen moet zetten?
Moet ik dat in postPoll doen? Of ergens anders?