Reputation: 4008
I´m trying to alert some data from a Ajax call. Can anyone spot what I am doing wrong?
PHP
while($row = $stmt->fetch()){
echo json_encode($row);
}
echo "Done!";
Result from Json_encode / Network Preview
{"flakId":"21098-10_flak-2"}{"flakId":"21098-10_flak-1"}Done!
JS
if(chosenObjNr){
alert('I CAN see this alert')
$.ajax({
url:'php/update.php',
type: 'POST',
data: 'chosenObjNr=' + chosenObjNr,
dataType: 'json',
error: function (data){ alert("failed, i can see this!");},
success: function(data){
alert('I cannot see this alert!');
alert(data);
var data0;
data0 = data[0];
alert(data0);
var falkId;
flakId = data[0];
alert(flakId);
console.log(data);
}
});
};
RESULT
No alert and nothing in the console.
Upvotes: 0
Views: 223
Reputation: 12391
The problem is, that the success
part of the ajax never will run. You defined the dataType
as a json, so it expecting json. Your PHP is echos 2 json and an unwanted string.
So, to check what is your error add the fail
function as Sina sad in the comment:
if (chosenObjNr) {
alert('I CAN see this alert')
$.ajax({
url: 'php/update.php',
type: 'POST',
data: 'chosenObjNr=' + chosenObjNr,
dataType: 'json',
}).done(function (data) {
alert('I cannot see this alert!');
//Do what you want to do here
}).fail(function (msg) {
alert('An error occured: ' + msg.statusText);
});
}
And, if you want to fix your .php
remove the echo 'Done';
part, and add your records to an array, and when its done, encode it to json:
$return = array();
while ($row = $stmt->fetch()) {
$return[] = $row;
}
echo json_encode($return);
Upvotes: 2