[AJAX] Probleem met IE

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

.NET Developer / Innovatieve software / Virtual Re

Functieomschrijving Als .Net developer werken aan innovatieve software waar onder andere gebruik gemaakt wordt van Virtual Reality? Bijdragen aan een organisatie waar je uitgedaagd wordt om continu verbeteringen en ontwikkelpunten te ontdekken en door te voeren? Werken in de omgeving Putten? Reageer dan nu voor meer informatie! Het pro-actief aandragen van verbeteringen voor de bestaande applicatie; Ontwikkelen van nieuwe functionaliteiten; Doorvoeren van aanpassingen en wijzigingen; Verantwoordelijk voor koppelingen met andere systemen; Op de hoogte blijven van technische ontwikkelingen. Functie-eisen Hbo werk- en denkniveau; Een afgeronde IT gerelateerde opleiding; Minimaal 1 jaar professionele ervaring als developer; Aantoonbare kennis van C#; Initiatiefrijke

Bekijk vacature »

Arian Stolwijk

Arian Stolwijk

20/12/2006 21:13:00
Quote Anchor link
Hoi,
Ik gebruik onderstaande code om wat te selecteren tussen gegevens uit de database... Dit selecteren gebreurt in do.php en dat vraag ik dus op via het XMLHttpRequest ding... Hij werkt in Firefox (2.0) en Opera (9.1). Maar niet in Internet explorer (6 en 7)

Ik gebruik hetzelfde op http://www.startprima.nl/dochters.php en daar doet hij het wel... Wat er mis gaat in IE is dat hij niks doet en onder in de status balk zegt: Fout op de pagina

Hoe kan ik dit oplossen??

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
<?php
// De <?php staat er even voor de kleurtjes ;)
<script type="text/javascript">

var
xmlHttp

function GetXmlHttpObject(){

    var
objXMLHttp = null
    if(window.XMLHttpRequest){
        objXMLHttp = new XMLHttpRequest()
    }

    
    else if(window.ActiveXObject){
        objXMLHttp = new ActiveXObject('Microsoft.XMLHTTP')
    }

    return objXMLHttp
}

// De dochters volgorde
function ShowDochters(str){
    if(str.length == 0){
        str = ''
    }
    
    xmlHttp = GetXmlHttpObject()
    if(xmlHttp == null){
        alert('Uw browser is niet geschikt voor dit systeem');
        return
    }
    
    url = 'do.php?dochtersadmin=ja&volgorde='+str;
    xmlHttp.onreadystatechange = DochtersChanged
    xmlHttp.open('GET',url,true)
    xmlHttp.send(null)
    
    
}


function
DochtersChanged() {

    if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete"){
        document.getElementById('dochters').innerHTML = xmlHttp.responseText;
    }
else{
        document.getElementById('dochters').innerHTML = 'Even gedult a.u.b. ...';
    }
}




//-->
</script>

?>
Gewijzigd op 01/01/1970 01:00:00 door Arian Stolwijk
 
PHP hulp

PHP hulp

19/01/2020 06:13:57
 
Simon Blok

Simon Blok

20/12/2006 21:43:00
Quote Anchor link
Ik zie zo snel de fout niet. Ik gebruik precies dezelfde functie om een activeXoject/httpRequest object aan te maken en dat werkt. Misschien ligt het aan de enkele quotes bij new ActiveXObject('Microsoft.XMLHTTP') dat zouden misschien dubbele moeten worden??
 
Zero Dead

Zero Dead

20/12/2006 21:58:00
Quote Anchor link
Kijk waar de fout zit, zet bij sommige functies alerts...

Bijv. dit:

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
<?php
// De <?php staat er even voor de kleurtjes ;)
<script type="text/javascript">

var
xmlHttp

function GetXmlHttpObject(){
alert('GetXmlHttpObject - SUCCES');
    var
objXMLHttp = null
    if(window.XMLHttpRequest){
        objXMLHttp = new XMLHttpRequest()
    }

    
    else if(window.ActiveXObject){
        objXMLHttp = new ActiveXObject('Microsoft.XMLHTTP')
    }

    return objXMLHttp
}

// De dochters volgorde
function ShowDochters(str){
alert('ShowDochters - SUCCES');
    if(str.length == 0){
        str = ''
    }
    
    xmlHttp = GetXmlHttpObject()
    if(xmlHttp == null){
        alert('Uw browser is niet geschikt voor dit systeem');
        return
    }
    
    url = 'do.php?dochtersadmin=ja&volgorde='+str;
    xmlHttp.onreadystatechange = DochtersChanged
    xmlHttp.open('GET',url,true)
    xmlHttp.send(null)
    
    
}


function
DochtersChanged() {
alert('DochtersChanged - SUCCES');

    if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete"){
        document.getElementById('dochters').innerHTML = xmlHttp.responseText;
    }
else{
        document.getElementById('dochters').innerHTML = 'Even gedult a.u.b. ...';
    }
}




//-->
</script>

?>

Ik zou ook overal ';'s gebruiken, dit maakt sommige dingen makkelijker((nog)niet in bovenstaande code)...

[edit]Deze code:

    xmlHttp.onreadystatechange = DochtersChanged
    xmlHttp.open('GET',url,true)
    xmlHttp.send(null)

Moet dat niet in eena ndere volgorde?

    xmlHttp.open('GET',url,true)
    xmlHttp.onreadystatechange = DochtersChanged
    xmlHttp.send(null)[/edit]
Gewijzigd op 01/01/1970 01:00:00 door Zero Dead
 
Arian Stolwijk

Arian Stolwijk

20/12/2006 22:17:00
Quote Anchor link
Als ik

het zo doe
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
<?php
function GetXmlHttpObject(){

    alert('GetXmlHttpObject - SUCCES');
    var
objXMLHttp = null
    if(window.XMLHttpRequest){
        objXMLHttp = new XMLHttpRequest()
    }

    
    else if(window.ActiveXObject){
        objXMLHttp = new ActiveXObject('Microsoft.XMLHTTP')
    }

    return objXMLHttp
}
?>

Geeft hij een alert dat het goed is gegaan (dus alert() bovenaan in de functie)

als ik het zo doe
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
<?php
function GetXmlHttpObject(){

    var
objXMLHttp = null
    if(window.XMLHttpRequest){
        objXMLHttp = new XMLHttpRequest()
    }

    
    else if(window.ActiveXObject){
        objXMLHttp = new ActiveXObject('Microsoft.XMLHTTP')
    }

    return objXMLHttp
    alert('GetXmlHttpObject - SUCCES');
}

?>

Dus alert onderaan in de functie doet hij het niet...

Ik heb dit altijd het zelfde gelaten... en gebruik het op meerdere pagina's waar IE het wel goed doet...
Gewijzigd op 01/01/1970 01:00:00 door Arian Stolwijk
 
Arian Stolwijk

Arian Stolwijk

20/12/2006 22:28:00
Quote Anchor link
Ik heb nu in het fouten raport van IE gelezen dat op regel 97 (in het script wat ik poste 31) de variabele url niet bestaat... of niet kan worden gebruikt ofzo...

Ik denk ik zet gewoon na
var xmlHttp
nog een keertje var url

Maar toen gaf IE de volgende fout: Onbekende runtime error
en dat was op de regel van document.getElementById('dochters').innerHTML = '<tr><td>Even gedult a.u.b. ...</td></tr>';
 
Jos

Jos

22/12/2006 15:10:00
Quote Anchor link
Ja dat krijg je als je innerHTML gebruikt :-)
 
Martijn B

Martijn B

22/12/2006 15:14:00
Quote Anchor link
Ik weet niks van AJAX (behalve iets met voetbal), maar dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
function GetXmlHttpObject(){

...

    return objXMLHttp
    alert('GetXmlHttpObject - SUCCES');
}

?>


Zou toch echt zo moeten:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
function GetXmlHttpObject(){

...

    alert('GetXmlHttpObject - SUCCES');
    return objXMLHttp
}
?>


En hoef je geen "';" meer te gebruiken in JavaScript met AJAX?
Gewijzigd op 01/01/1970 01:00:00 door Martijn B
 
Jos

Jos

22/12/2006 15:20:00
Quote Anchor link
Hoeft niet, alleen als je meerdere dingen op 1 lijn doet, een nieuwe lijn staat gelijk aan een puntkomma.
 
Rens nvt

Rens nvt

22/12/2006 15:37:00
Quote Anchor link
Jos, de term "hoeft niet" kun je beter vergeten denk ik... Het is een kleine moeite, en het is veel overzichterlijker om wel elke regel met een ; af te breken.

Arian, Lees even goed de post van Martijn... Die geeft je namelijk een heel duidelijk aanwijzing dat de fout mogelijk niet in de GetXmlHttpObject functie zit

Verder kun je innerHTML heel goed gebruiken, maar dan moet je wel even aangeven wat voor element je gebruikt. Volgens mij probeer je "<tr><td>tekst</td></tr>" toe te voegen aan een tabel, en dat is natuurlijk een hopeloos iets. In een tabel zelf zit namelijk geen HTML code, alleen in de cellen...

Als je hier via javascript iets wilt toevoegen kun je het bijvoorbeeld op de volgende manier doen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
<table>
    <
tbody id="tabel">
    <
/tbody>
<
/table>
?>


en dan met de onderstaande functie een rij toevoegen

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
    function rijToevoegen (tekst) {
        var
tabel = document.getElementById("tabel");
        var
rij = document.createElement("tr");
        var
cell = document.createElement("td");
        cell.innerHTML = "Even geduld a.u.b.";

        // Cell aan rij koppelen, rij aan tabel koppelen
        rij.appendChild(cell);
        tabel.appendChild(rij);
    }

?>
Gewijzigd op 01/01/1970 01:00:00 door Rens nvt
 



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.