skip to Main Content

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

2

Answers


  1. Chosen as BEST ANSWER

    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.


  2. 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.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search