Een document.getElementById probleem
Ik weet niet of ik het hier kan posten maar ik heb een vreemd probleem: Ik voer de volgende code uit mijn javascript die wordt gestart vanuit een PHP programma.
var x = document.getElementById("id_beginperiode");
var value5 = x.options[x.selectedIndex].text;
Als ik deze javascript code aanroep dan gaat het goed en krijg ik te zien wat ik verwacht. Maar start ik dezelfde javascript nogmaals op vanuit hetzelfde PHP programma dan krijg ik vreemd genoeg een error:
Object doesn't support this property of method en dat gebeurt op de code var value5=.....
Het lijkt te maken te hebben met IE want met firefox lijkt het goed te gaan. Heeft iemand hier ervaring mee of doe ik gewoon iets fout.
Alvast bedankt
Moet het niet zijn x.options[x.selectedIndex].value?
Heb ik ook geprobeerd maar het leverde geen succes op ;-(
En wat geeft de firebug addon in firefox voor meldingen?
Niet zo heel veel. Ik moet zeggen dat ik nog niet gewerkt heb met firefox debug
Misschien slim om dat dan eens te gaan doen? Installeer de firebug addon en kijk eens wat voor foutmeldingen er dan gegeven worden. Deze zijn over het algemeen vele malen nuttiger dan de foutmeldingen van IE als die al gegeven worden...
Weet je zeker dat de code wordt afgevuurd als de volledige pagina opgebouwd is? Dus bij onload / DOM ready?
@bianca: Firefox geeft geen meldingen waarmee ik iets kan. Ik krijg netjes een 200 Ok terug en geen foutmeldingen. Al waren er wel wat andere zaken die niet goed zaten ;-)
Quote:
Blanche bedoel je neem ik aan?@bianca
Laat dan eens wat van je script zien, en dan met name het gedeelte dat niet werkt...
Misschien een stomme vraag, hoe kan ik mijn code hierin plakken, ik zie namelijk in andere berichten dan een stukje code in een aparte textbox wordt geplaatst
Gebruik de tags...
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
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
function addexperience(action) {
var value1 = document.getElementById("id_company").value;
var value2 = document.getElementById("id_function").value;
var value3 = document.getElementById("id_location").value;
var value4 = document.getElementById("cv_textarea").value;
var x = document.getElementById("id_beginperiode");
var value5 = x.options[x.selectedIndex].value;
var x = document.getElementById("id_eindperiode");
var value6 = x.options[x.selectedIndex].value;
var value7 = document.getElementById("id_bjaartal").value;
var value8 = document.getElementById("id_ejaartal").value;
var value9 = document.getElementById("id_number").value;
var loadurl = 'addexperience.php?value1='+value1+'&value2='+value2+'&value3='+value3+'&value4='+value4
var loadurl = loadurl +'&value5='+value5+'&value6='+value6+'&value7='+value7+'&value8='+value8+'&value9='+value9+'&action='+action;
// Open object
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
{
alert ("Your browser does not support AJAX!");
return;
}
// the xmlhttp object triggers an event everytime the status changes
xmlHttp.onreadystatechange = showexperience;
// open takes in the HTTP method and url.
xmlHttp.open("GET", loadurl, true);
// send the request.
// Moz is fine with just send() but
// IE expects a value here, hence we do send(null);
xmlHttp.send(null);
}
function showexperience(){
if ((xmlHttp.readyState == 4) && (xmlHttp.status == 200)) {
returnarray = xmlHttp.responseText.split("|");
//Laden section
if ( returnarray.length <= 1) {
document.getElementById("id_experience").innerHTML = returnarray[0];
} else if ( returnarray.length > 1 && returnarray.length < 3 ) {
var x=document.getElementById("id_cv3form");
for (var i=0;i<x.length;i++) {
if ( x.elements[i].type != "submit") {
x.elements[i].value="";
}
}
//Toevoegen section
document.getElementById("id_experience").innerHTML = returnarray[1];
}
else {
alert (returnarray);
//Verwerk section
document.cv3_form.number.value = returnarray[0];
document.cv3_form.company.value = returnarray[1];
document.cv3_form.functie.value = returnarray[2];
document.cv3_form.location.value = returnarray[3];
document.cv3_form.activities.value = returnarray[4];
document.cv3_form.bjaartal.value = returnarray[6];
document.cv3_form.ejaartal.value = returnarray[8];
//
var x=document.getElementById("id_beginperiode");
for (i=0;i<x.length;i++){
if( returnarray[5] = x.options[i].text) {
x.selectedIndex = i
}
}
var x=document.getElementById("id_eindperiode");
for (i=0;i<x.length;i++){
if( returnarray[7] = x.options[i].text) {
x.selectedIndex = i
}
}
for (i=0;i<=returnarray.length;i++){
alert (returnarray[i])
}
document.getElementById("id_experience").innerHTML = returnarray[returnarray.length-1];
}
}
}
var value1 = document.getElementById("id_company").value;
var value2 = document.getElementById("id_function").value;
var value3 = document.getElementById("id_location").value;
var value4 = document.getElementById("cv_textarea").value;
var x = document.getElementById("id_beginperiode");
var value5 = x.options[x.selectedIndex].value;
var x = document.getElementById("id_eindperiode");
var value6 = x.options[x.selectedIndex].value;
var value7 = document.getElementById("id_bjaartal").value;
var value8 = document.getElementById("id_ejaartal").value;
var value9 = document.getElementById("id_number").value;
var loadurl = 'addexperience.php?value1='+value1+'&value2='+value2+'&value3='+value3+'&value4='+value4
var loadurl = loadurl +'&value5='+value5+'&value6='+value6+'&value7='+value7+'&value8='+value8+'&value9='+value9+'&action='+action;
// Open object
xmlHttp=GetXmlHttpObject();
if (xmlHttp==null)
{
alert ("Your browser does not support AJAX!");
return;
}
// the xmlhttp object triggers an event everytime the status changes
xmlHttp.onreadystatechange = showexperience;
// open takes in the HTTP method and url.
xmlHttp.open("GET", loadurl, true);
// send the request.
// Moz is fine with just send() but
// IE expects a value here, hence we do send(null);
xmlHttp.send(null);
}
function showexperience(){
if ((xmlHttp.readyState == 4) && (xmlHttp.status == 200)) {
returnarray = xmlHttp.responseText.split("|");
//Laden section
if ( returnarray.length <= 1) {
document.getElementById("id_experience").innerHTML = returnarray[0];
} else if ( returnarray.length > 1 && returnarray.length < 3 ) {
var x=document.getElementById("id_cv3form");
for (var i=0;i<x.length;i++) {
if ( x.elements[i].type != "submit") {
x.elements[i].value="";
}
}
//Toevoegen section
document.getElementById("id_experience").innerHTML = returnarray[1];
}
else {
alert (returnarray);
//Verwerk section
document.cv3_form.number.value = returnarray[0];
document.cv3_form.company.value = returnarray[1];
document.cv3_form.functie.value = returnarray[2];
document.cv3_form.location.value = returnarray[3];
document.cv3_form.activities.value = returnarray[4];
document.cv3_form.bjaartal.value = returnarray[6];
document.cv3_form.ejaartal.value = returnarray[8];
//
var x=document.getElementById("id_beginperiode");
for (i=0;i<x.length;i++){
if( returnarray[5] = x.options[i].text) {
x.selectedIndex = i
}
}
var x=document.getElementById("id_eindperiode");
for (i=0;i<x.length;i++){
if( returnarray[7] = x.options[i].text) {
x.selectedIndex = i
}
}
for (i=0;i<=returnarray.length;i++){
alert (returnarray[i])
}
document.getElementById("id_experience").innerHTML = returnarray[returnarray.length-1];
}
}
}
Ten tweede PHP: met de eerste aanroep van het javascript:
Code (php)
1
echo '<a href="javascript:addexperience()"><img src="images/addbutton.png" border="0"/></a>';
En de tweede keer dat ik de code aanroep:
Code (php)
1
2
2
$aanroep = 'verwerken-'.$temparray[0];
echo '<td align="center"><a href="javascript:addexperience(\''. $aanroep .'\')">';
echo '<td align="center"><a href="javascript:addexperience(\''. $aanroep .'\')">';
Gewijzigd op 01/01/1970 01:00:00 door Frank Bos
Ik denk dat ik het lek boven heb....Omdat ik alles via javescript regel wordt de pagina niet opnieuw geladen. Elke keer als ik een item wil toevoegen en de voorwaardes zijn in orde dan wil ik graag de form velden leegmaken:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
} else if ( returnarray.length > 1 && returnarray.length < 3 ) {
var x=document.getElementById("id_cv3form");
/*for (var i=0;i<x.length;i++) {
if ( x.elements[i].type != "submit") {
x.elements[i].value="";
}
}*/
//Toevoegen section
document.getElementById("id_experience").innerHTML = returnarray[1];
var x=document.getElementById("id_cv3form");
/*for (var i=0;i<x.length;i++) {
if ( x.elements[i].type != "submit") {
x.elements[i].value="";
}
}*/
//Toevoegen section
document.getElementById("id_experience").innerHTML = returnarray[1];
Als ik daarna gelijk het nieuw toegevoegde item wil bewerken, zie code in mijn vorige bericht, dan gaat het fout. Dus probleem gevonden nu de oplossing nog.