2013-10-10 4 views
0

Я написал некоторый код ajax, используя библиотеку с открытым исходным кодом, чтобы выполнить разбиение на страницы jquery. , когда первая страница загружается, она правильно запрашивает и отображает первые 25 записей из моей базы данных. Но все последующие запросы терпят неудачу с ошибкой синтаксического анализа. Я не вижу ничего другого между форматированием данных на первой странице и другими страницами.parse error from ajax call

Я пытался использовать JSON Lint, но ни один из моих JSON не проходит, даже запрос на странице 1. Мои данные JSON выглядит следующим образом:

"[{\"createddatetime\":\"2013-09-10 17:56:54\",\"description\":\"and the final update\",\"number\":\"72212\",\"updatedname\":\"28112\",\"createdname\":\"conversion script\",\"user\":\"28507\",\"position\":\"1\",\"device_id\":\"2\",\"user_id\":\"2\",\"password\":\"Wh16dteaR\",\"updateddatetime\":\"2013-10-07 15:14:28\"},{\"createddatetime\":\"2013-09-10 17:56:54\",\"description\":\"Bauer\",\"number\":\"72787\",\"createdname\":\"conversion script\",\"user\":\"28509\",\"position\":\"2\",\"device_id\":\"4\",\"user_id\":\"4\",\"password\":\"EHVOzIx1\"},{\"createddatetime\":\"2013-09-10 17:56:54\",\"description\":\" Woosly\",\"number\":\"72822\",\"createdname\":\"conversion script\",\"user\":\"28510\",\"position\":\"3\",\"device_id\":\"5\",\"user_id\":\"5\",\"password\":\"IP8rsdOE\"}]" 

И тогда я использую метод parseJSON для преобразования указанную выше строку в объект. Вот главная программа, которая делает вызов Ajax и разбирает:

$.ajax({ 
     url: mypath + '?startpos=' + page_index * items_per_page + '&numberofrecordstograb=' + items_per_page + '&viewtype=json', 
     dataType: 'json', 
     success: function(data){       
      data = $.parseJSON(data); //converting to a javascript object vs. just string...  
      if (data !=null) { 

       for(var i=0;i<data.length;i++){ 
         var deviceobj = data[i];       
         newcontent = newcontent + "<TR>"; 
         newcontent=newcontent + '<TD>';  

         //add EDIT hyperlink 
         if ($("#editdevicesettings").val() == "true") {    
          var temp = $("#editlinkpath").val(); 
          newcontent=newcontent + temp.replace("xxx",deviceobj["device_id"]) + '&nbsp;&nbsp;'; 
         } 

         //add DELETE hyperlink 
         if ($("#deletedevice").val() == "true") {    
          var temp = $("#deletelinkpath").val(); 
          newcontent=newcontent + temp.replace("xxx",deviceobj["device_id"]); 
         }         
         newcontent=newcontent + '</TD>'; 

         newcontent=newcontent + '<TD>' + deviceobj["number"] +'</TD>'; 
         newcontent=newcontent + '<<TD>' + deviceobj["user"] + '</TD>'; 
         newcontent=newcontent + '<<TD>' + deviceobj["password"] + '</TD>'; 
         if (deviceobj["name"]) { 
           newcontent=newcontent + '<TD>' + deviceobj["name"] + '</TD>'; 
         } 
         else { 
          newcontent=newcontent + '<TD>&nbsp;</TD>'; 
         } 
         newcontent=newcontent + '<TD>' + deviceobj["description"] + '</TD>'; 
         newcontent = newcontent + "</TR>";   
       }// end for 
       // Replace old content with new content 
       $('#Searchresult').html(newcontent);      
      }//end if 

     }, 
     error: function(request, textStatus, errorThrown) { 
     console.log(textStatus); 

     }, 
     complete: function(request, textStatus) { //for additional info 
     //alert(request.responseText); 
     console.log(textStatus); 
     } 
    }); 

    // Prevent click eventpropagation 
    return false; 
}//end pageselectCallback() 

Я не уверен, как идти об устранении этого. Любые предложения были бы оценены

ответ

0

Я решил уменьшить количество записей, возвращенных на одну страницу, чтобы сузить оскорбительную запись. теперь, когда я знаю, какая запись, я должен уметь решить проблему.