AJAX probleem
Eerst even de code's:
javascript code
En dan roep ik de ajax zo op:
javascript code
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
Code tussen code tags geplaatst[/modedit]
javascript code
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
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;
}
}
}
// -----------------
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)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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();
}
// ---------------------------
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
Code tussen code tags geplaatst[/modedit]
Gewijzigd op 09/06/2010 15:01:20 door Chris -
Tip: Gebruik jQuery. Dan hoef je dat gedoe met
zoiezo al niet meer te doen. Kan het daarbij ook niet fout gaan.
Code (php)
1
2
3
4
5
6
7
8
9
10
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");
{
// 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.
Ik ben een beetje tegen jQuery, iedereen gebruikt het al.
Ik schrijf liever mijn code zelf -> meer zelfvoldoening.
Ik schrijf liever mijn code zelf -> meer zelfvoldoening.
Er is een reden waarom heel veel mensen JQuery gebruiken.
Misschien omdat het heel veel voldoening geeft ;)
Misschien omdat het heel veel voldoening geeft ;)
Waarom gebruik je PHP? iedereen gebruikt het al. Zelf een programmeertaal schijven waarmee je hetzelfde kunt als met PHP geeft vast meer zelfvoldoening?
Kan niemand gewoon eens kijken wat de fout is, daar leer ik meer uit ;)
Bedankt.
Bedankt.
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.
Verder, je definieert de variabele "albumStatistieken" nergens. Dat zegt de foutmelding, en het klopt ook.
Even met inspringing en al:
Huh??
Je doet hier niet met naam, en redeclareert naam terwijl deze al binnen de scope van de functie zit.
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)
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
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();
}
// -----------------
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??
Je doet hier niet met naam, en redeclareert naam terwijl deze al binnen de scope van de functie zit.
Code (php)
1
2
3
4
5
6
7
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();
}
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:
Gebruik gewoon jQuery, dan kan je dit in 3 regels doen...
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.
Ik moet toegeven dat ik ook snel naar jQuery grijp, maar vaak zou dat niet nodig hoeven zijn.
Peter datwiljewelwetenhe op 09/06/2010 10:44:45:
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. :)




