2013-10-10 3 views
0

jquery 페이지 매김을 수행하기 위해 오픈 소스 라이브러리를 사용하여 일부 아약스 코드를 작성했습니다. 페이지를 처음로드 할 때 내 데이터베이스의 처음 25 개 레코드를 올바르게 쿼리하여 표시합니다. 그러나 모든 후속 요청은 구문 분석 오류와 함께 실패합니다. 첫 페이지의 데이터 형식과 다른 페이지의 데이터 형식이 다를 수 있습니다.ajax 호출의 구문 분석 오류

내가 JSON 린트를 사용하려했지만 내 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({ 
     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

페이지 당 하나씩 반환되는 레코드 수를 줄이기로 결정했습니다. 문제가되는 레코드의 범위를 좁히기로 결정했습니다. 이제는 어떤 레코드인지 알았으므로 문제를 해결할 수 있어야합니다.

관련 문제