[ZEND/jQuery] Probleem met JSON data
Maar jQuery kan hem maar niet uitlezen:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
submitHandler: function() {
$.ajax({
type: 'POST',
url: '',
data: $(formId).serialize(),
dataType: 'JSON',
complete: function(data) {
alert(data.formValid);
}
});
};
$.ajax({
type: 'POST',
url: '',
data: $(formId).serialize(),
dataType: 'JSON',
complete: function(data) {
alert(data.formValid);
}
});
};
En krijg bij die alert continu: 'undefinded'. Heb dingen zoals de action en alle overige code even weggehaald. Ik weet niet waar het probleem zit en hoop daarom dat iemand mij kan helpen of eventueel mee kan denken.
Alvast bedankt en een fijne avond!
Anders
krijg je een indruk van wat er zoal in data terugkomt.
Code (php)
1
readyStatesetRequestHeadergetAllResponseHeadersgetResponseHeaderoverrideMimeTypeabortdonefailprogressstateisResolvedisRejectedthenalwayspipepromisesuccesserrorcompletestatusCoderesponseTextstatusstatusText
Gewijzigd op 08/04/2012 21:52:09 door PHP Scripter
Bas, of chrome met de webkit web inspector of opera die ook al een inspector heeft, precies zoals IE. En ook FireFox heeft vanaf het begin al een console zonder firebug en ook FireFox heeft sinds FF10 een inspector (zeer slecht, maar dat laten we buiten beschouwing).
Gewijzigd op 08/04/2012 21:55:09 door Wouter J
@Wouter, true over de browsers. Ik weet niet uit mijn hoofd of je in JSON een bool moet quoten. Ik denk van niet.
@Bas, even getest en het hoeft niet.
Wouter J op 08/04/2012 22:32:31:
Ik zie de fout al, je gebruik complete maar je moet success gebruiken dan werkt het wel. Complete geeft je een object met verschillende gegevens, zoals status en responseText.
@Bas, even getest en het hoeft niet.
@Bas, even getest en het hoeft niet.
Dat heb ik bewust gedaan omdat hij in 'succes' helemaal niets doet omdat de JSON niet goed geretourneert wordt.
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
$.ajax({
type: 'POST',
url: '',
data: $(formId).serialize(),
dataType: 'JSON',
complete: function(data) {
var result = JSON.parse(data.responseText);
alert(result.formValid);
}
});
type: 'POST',
url: '',
data: $(formId).serialize(),
dataType: 'JSON',
complete: function(data) {
var result = JSON.parse(data.responseText);
alert(result.formValid);
}
});
Maar dan is eigenlijk het hele nut van de JSON type weg, je moet nu namelijk alsnog zelf de JSON parsen.
Gewijzigd op 08/04/2012 23:11:39 door PHP Scripter
Eventueel kun je zelf een AJAX request als test maken die wel werkt (dus gewoon naar een normale test.json bestand ofzo). Vervolgens ga je de jqXHR objects vergelijken in bijv. de complete, beforeSend en 302 status callback. Zie je verschillen tussen de Zend en de test versie?
Graag zie ik jullie reacties tegemoet.
Toevoeging op 09/04/2012 12:45:19:
Totdat ik een oplossing heb gevonden blijf ik even de 'oplossing' van Wouter gebruiken.
Ik hoop dat er in de tussentijd iemand een oplossing heeft.
Ik test net een JSON calletje en dit werkt bij mij?