Reputation: 309
Here is what is going on. I have an error in my Ajax code that is causing the following error:
Unexpected end of JSON input ajax
Here is my code:
I'm getting data from an array by doing the following:
echo json_encode($departTickets);
Then I'm parsing the JSON by doing the following:
$("[data-department-id]").click(function() {
id = $(this).attr('data-department-id');
$.ajax({
type: 'POST',
data : {
'id' : id
},
url:"/desk/template/fetchtickets.php",
success: function (res) {
var data = jQuery.parseJSON(res);
for (var jsonId in data) {
$('#department_'+id).html(jsonId);
}
}
});
});
Based on the code, what could be causing the issue?
Thank you, Kevin Davis
Upvotes: 0
Views: 97
Reputation: 71
Number 1 echo json_encode($departTickets);
your encoding the data in json.
Then parsing it to AJAX, but you have not told ajax that your dataType
is in json.
So we tell ajax like this
$("[data-department-id]").click(function() {
id = $(this).attr('data-department-id');
$.ajax({
type: 'POST',
url:"/desk/template/fetchtickets.php",
dataType: 'json',
data : {
'id' : id
},
success: function (res) {
var data = jQuery.parseJSON(res);
for (var jsonId in data) {
$('#department_'+id).html(jsonId);
}
}
});
});
Please note how i changed the position of url and placed the dataType bellow it.
Upvotes: 1
Reputation: 309
Found a solution..
First here is how I found the resolution.
I used the following command:
echo json_last_error_msg();
Then it was an encoding issue with the data, so I did the following is:
$departTickets = mb_convert_encoding($departTickets, 'UTF-8', 'UTF-8');
echo json_encode($departTickets);
Problem solved.
Upvotes: 0