Een document.getElementById probleem

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Frank Bos

Frank Bos

12/01/2009 11:05:00
Quote Anchor link
Beste,

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
 
PHP hulp

PHP hulp

09/11/2024 02:43:39
 
Joren de Wit

Joren de Wit

12/01/2009 11:11:00
Quote Anchor link
Moet het niet zijn x.options[x.selectedIndex].value?
 
Frank Bos

Frank Bos

12/01/2009 11:15:00
Quote Anchor link
Heb ik ook geprobeerd maar het leverde geen succes op ;-(
 
Joren de Wit

Joren de Wit

12/01/2009 11:27:00
Quote Anchor link
En wat geeft de firebug addon in firefox voor meldingen?
 
Frank Bos

Frank Bos

12/01/2009 12:07:00
Quote Anchor link
Niet zo heel veel. Ik moet zeggen dat ik nog niet gewerkt heb met firefox debug
 
Joren de Wit

Joren de Wit

12/01/2009 12:08:00
Quote Anchor link
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...
 
Rens nvt

Rens nvt

12/01/2009 12:15:00
Quote Anchor link
Weet je zeker dat de code wordt afgevuurd als de volledige pagina opgebouwd is? Dus bij onload / DOM ready?
 
Frank Bos

Frank Bos

12/01/2009 12:46:00
Quote Anchor link
De pagina is reeds geladen, hierna voer ik via AJAX javascript code uit. Dit doe 1 keer bij bijvoorbeeld het toevoegen van gegevens en nogmaals als de toegevoegde informatie wil bewerken. De pagina wordt dan niet herladen. Als dat is wat je bedoelt....

@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 ;-)
 
Joren de Wit

Joren de Wit

12/01/2009 12:52:00
Quote Anchor link
Quote:
@bianca
Blanche bedoel je neem ik aan?

Laat dan eens wat van je script zien, en dan met name het gedeelte dat niet werkt...
 
Frank Bos

Frank Bos

12/01/2009 13:00:00
Quote Anchor link
Sorry, was even in gedachten...

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
 
Joren de Wit

Joren de Wit

12/01/2009 13:04:00
Quote Anchor link
Gebruik de tags...
 
Frank Bos

Frank Bos

12/01/2009 13:12:00
Quote Anchor link
Bij deze. Ten eerste de javascript: (regel met var value5 en var value6)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
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];

        }

    }
}


Ten tweede PHP: met de eerste aanroep van het javascript:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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)
PHP script in nieuw venster Selecteer het PHP script
1
2
                $aanroep = 'verwerken-'.$temparray[0];
                echo '<td align="center"><a href="javascript:addexperience(\''. $aanroep .'\')">';
Gewijzigd op 01/01/1970 01:00:00 door Frank Bos
 
Joren de Wit

Joren de Wit

12/01/2009 13:15:00
Quote Anchor link
Controleer eens of value5 en value6 wel de juiste waarde krijgen? Dus zoe zoiets in je javascript:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
alert(value5);
 
Frank Bos

Frank Bos

12/01/2009 13:38:00
Quote Anchor link
Beste Blanche,

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)
PHP script in nieuw venster Selecteer het PHP script
1
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];


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.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.