Versio

AJAX probleem

Overzicht Reageren

Kobe Aerts

kobe Aerts

08/06/2010 17:55:48
Quote Anchor link
Eerst even de code's:
javascript code
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
//    0.    createRequest
    //    -----------------
 
        function createRequest()
        {
 
            //    Variabelen declareren
            var request;
 
            if ( window.XMLHttpRequest )
            {
                // code for IE7+, Firefox, Chrome, Opera, Safari
                request = new XMLHttpRequest();
 
            }
            else
            {
                // code for IE6, IE5
                request = new ActiveXObject("Microsoft.XMLHTTP");
 
            }
 
            //    Variabelen returnen
            return request;
 
        }
 
    //    0.    AjaxRequest
    //    ---------------
 
        function AjaxRequest( naam, element )
        {
 
            var naam         = naam;
            naam            = new createRequest();
            var element     = element;    
 
            naam.onreadystatechange = function()
            {
 
                if ( naam.readyState == 4 && naam.status == 200 )
                {
 
                    document.getElementById( element ).innerHTML = naam.responseText;
 
                }
 
            }
 
        }


En dan roep ik de ajax zo op:
javascript code
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
//    2.    albumsFavorietToevoegen
    //    ---------------------------
 
        function albumFavorietToevoegen( albumID, gebruikersID )
        {
 
            //    Variabelen declareren
            var albumID            = albumID;
            var gebruikersID     = gebruikersID;
 
            AjaxRequest( 'albumStatistieken', 'albumStatistieken');
 
            //    Favoriet updaten
            albumStatistieken.open("GET","Ajax/albumFavorietToevoegen.php?id=" + albumID +"&gebruiker=" + gebruikersID, true);
            albumStatistieken.send();
 
        }


Ik heb al even zitten zoeken maar ik vind de fout niet.

EDIT: dit geeft hij als fout: Uncaught ReferenceError: albumStatistieken is not defined

Kobe

Modedit: Chris:
Code tussen code tags geplaatst
Gewijzigd op 09/06/2010 15:01:20 door Chris
 
PHP hulp

PHP hulp

23/05/2012 20:50:40
Gesponsorde koppelingen:
 
Piet Verhagen

Piet Verhagen

08/06/2010 18:47:11
Quote Anchor link
Tip: Gebruik jQuery. Dan hoef je dat gedoe met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
if ( window.XMLHttpRequest )
{
// code for IE7+, Firefox, Chrome, Opera, Safari
request = new XMLHttpRequest();

}
else
{
// code for IE6, IE5
request = new ActiveXObject("Microsoft.XMLHTTP");

zoiezo al niet meer te doen. Kan het daarbij ook niet fout gaan.
 
Kobe Aerts

kobe Aerts

08/06/2010 19:09:38
Quote Anchor link
Ik ben een beetje tegen jQuery, iedereen gebruikt het al.

Ik schrijf liever mijn code zelf -> meer zelfvoldoening.
 
Andreas Warnaar

Andreas Warnaar

08/06/2010 19:15:17
Quote Anchor link
Er is een reden waarom heel veel mensen JQuery gebruiken.
Misschien omdat het heel veel voldoening geeft ;)
 
Piet Verhagen

Piet Verhagen

08/06/2010 20:03:19
Quote Anchor link
Waarom gebruik je PHP? iedereen gebruikt het al. Zelf een programmeertaal schijven waarmee je hetzelfde kunt als met PHP geeft vast meer zelfvoldoening?
 
Kobe Aerts

kobe Aerts

08/06/2010 21:20:17
Quote Anchor link
Kan niemand gewoon eens kijken wat de fout is, daar leer ik meer uit ;)

Bedankt.
 
Richard van Velzen

Richard van Velzen

08/06/2010 22:44:54
Quote Anchor link
Je code is echt een zooi, leer JavaScript: http://javascript.crockford.com/

Verder, je definieert de variabele "albumStatistieken" nergens. Dat zegt de foutmelding, en het klopt ook.
 
P Lekensteyn

P Lekensteyn

09/06/2010 10:44:45
Quote Anchor link
Even met inspringing en al:
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
// 0. createRequest
// -----------------
function createRequest() { // Variabelen declareren
    var request;
    if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
        request = new XMLHttpRequest();
    } else { // code for IE6, IE5
        request = new ActiveXObject("Microsoft.XMLHTTP");
    } // Variabelen returnen
    return request;
} // 0. AjaxRequest
// ---------------
function AjaxRequest(naam, element) {
    var naam = naam;
    naam = new createRequest();
    var element = element;
    naam.onreadystatechange = function () {
        if (naam.readyState == 4 && naam.status == 200) {
            document.getElementById(element).innerHTML = naam.responseText;
        }
    }
}
En dan roep ik de ajax zo op: javascript code // 2. albumsFavorietToevoegen
// ---------------------------
function albumFavorietToevoegen(albumID, gebruikersID) { // Variabelen declareren
    var albumID = albumID;
    var gebruikersID = gebruikersID;
    AjaxRequest('albumStatistieken', 'albumStatistieken'); // Favoriet updaten
    albumStatistieken.open("GET", "Ajax/albumFavorietToevoegen.php?id=" + albumID + "&gebruiker=" + gebruikersID, true);
    albumStatistieken.send();
}


Huh??
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
function AjaxRequest(naam, element) {
    var naam = naam;
    naam = new createRequest();

Je doet hier niet met naam, en redeclareert naam terwijl deze al binnen de scope van de functie zit.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
function albumFavorietToevoegen(albumID, gebruikersID) { // Variabelen declareren
    var albumID = albumID;
    var gebruikersID = gebruikersID;
    AjaxRequest('albumStatistieken', 'albumStatistieken'); // Favoriet updaten
    albumStatistieken.open("GET", "Ajax/albumFavorietToevoegen.php?id=" + albumID + "&gebruiker=" + gebruikersID, true);
    albumStatistieken.send();
}

Wat een zooi.. albumStatistieken wordt nergens gedefinieerd.
albumID en gebruikersID hoeven niet met var te worden gedeclareerd.
Ik denk dat je voor AjaxRequest nog var 'albumStatistieken=' wilt toevoegen (zonder ').
En de functie AjaxRequest even aanpassen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
function AjaxRequest(naam, element) {
    var req = new createRequest();
    req.onreadystatechange = function () {
        if (req.readyState == 4 && req.status == 200) {
            document.getElementById(element).innerHTML = req.responseText;
        }
    }
    return req;
}
 
Jan geen

Jan geen

09/06/2010 12:33:33
Quote Anchor link
Gebruik gewoon jQuery, dan kan je dit in 3 regels doen...
 
Steff   an

Steff an

09/06/2010 14:21:06
Quote Anchor link
jQuery voor zoiets? Kom op! Daarnaast doe je het dan ook niet in 3 regels.. heb je weleens gekeken hoe groot jQuery is?

Ik moet toegeven dat ik ook snel naar jQuery grijp, maar vaak zou dat niet nodig hoeven zijn.
 
Jelmer rrrr

Jelmer rrrr

09/06/2010 14:50:50
Quote Anchor link
Peter datwiljewelwetenhe op 09/06/2010 10:44:45:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
function AjaxRequest(naam, element) {
    var req = new createRequest();
    req.onreadystatechange = function () {
        if (req.readyState == 4 && req.status == 200) {
            document.getElementById(element).innerHTML = req.responseText;
        }
    }
    return req;
}

Klein detail nog, het is gewoon 'var req = createRequest();', zonder new, aangezien je niet een instantie van createRequest wilt maken, maar van XMLHttpRequest (of dat activex ding) en dat doet die functie al voor je. :)
 



Overzicht Reageren

Get Adobe Flash player