2011-08-11 3 views
7

DataTable을 기존 Ajax 검색 기능과 함께 사용하려고했습니다.이 기능은 자체적으로 작동합니다.JSON, AJAX 및 PHP에서 데이터를 표시하지 않는 DataTable

나는 다음과 같은 코드를 가지고 : PHP의 유효한 JSON 객체를 반환

 $('#SearchResults').dataTable({ 
      "bProcessing": true, 
      "bServerSide": true, 
      "bRetrieve": true, 
      "sAjaxSource": "process.php?action=searchArtifact", 
      "fnServerData": function (sSource, aoData, fnCallback){ 
       aoData.push({ 
        "name": "searchName", 
        "value": $('#ArtifactSearch').attr('value') 
       }); 
       $.ajax({ 
        "dataType": "json", 
        "type": "POST", 
        "url": sSource, 
        "data": aoData, 
        "success": fnCallback 
       }); 

      } 
     }); 

이 (JSON_FORCE_OBJECT 사용) :

{"0":{"ARTIFACT_ID":"4E2FE3BCE356C","ARTIFACT_NAME":"123","ARTIFACT_TYPE":"UI","ARTIFACT_LABEL":"Test_Int_EAS_123","ARTIFACT_LOCATION":"Int","ARTIFACT_DOMAIN":"ABC","ARTIFACT_AUTHOR":null,"REGISTERED_EMAIL":"[email protected]","REGISTERED_DATE":"27-07-2011","REGISTERED_TIME":"11:09:00"} 

내가, 방화범이 모두 잘 볼 수 있지만 내 빈 테이블을 이 데이터로 채워지지 않습니다.

아이디어가 있으십니까?

@ 카일 : Errr - thats it. 내가 가진 게없는 것 같아? 이것은 DataTables에 대한 내 첫 시도 (투쟁)이며 문서에서 복사하는 것입니다. http://www.datatables.net/usage/callbacks#fnServerData

@MarcB : 추가되었지만 여전히 데이터가 표시되지 않았습니다. 도움을 주셔서 감사합니다.

+0

검색? – Kyle

+0

'성공 : 함수 (데이터) {fnCallback (데이터); }'반환 된 데이터를 명시 적으로 전달하려면? –

+0

결과를 반환하는 PHP 소스 코드를 보여줄 수 있습니까? 여기에 요청 된 올바른 형식을 제공하지 않았다고 생각하기 때문에 http://www.datatables.net/usage/server-side –

답변

0

이 플러그인은 반환 된 JSON 객체가 객체 배열이면서 객체 배열임을 기대합니다. 이 속성은 'aaData'라고해야합니다. 당신은 물체를 반환하지 않습니다; 배열을 반환하는 것입니다.

0

비슷한 문제가있었습니다. 내가 JSON 응답을 적절히 형성하지 못했다. 이것은 나를 위해 일한 :

<?php 

$arr = array ('aaData' => array(
array('3','35','4', '$14,500', '$15,200','$16,900','5','1'), 
array('1','16','4', '$14,200', '$15,100','$14,900','Running','1'), 
array('5','25','4', '$14,500', '$15,600','$16,900','Not Running','1') 
) 
); 

echo json_encode($arr); 
?> 
0

$ .ajax 부분을 제거 할 수 있지만 대신 $ .getJSON 메소드를 사용할 수 있습니다.

0

또한 "aaData"와 같은 별도의 객체를 추가 피하기 위해 다음과 같은 추가 할 수 있습니다 : 당신이 서초를 설정하는 무엇

"sAjaxDataProp": '' 
0

를? 몇 년 후반

{ 
    "sEcho": 'refer to "sEcho" in $_GET or $_POST; don't forget to sanitize', 
    "iTotalRecords": 'for pagination', 
    "iTotalDisplayRecords": 'number displayed', 
    "aaData" => { /* your data here */ } 
} 
0

이것은하지만 사람을 도움이 될 수 있습니다 :

귀하의 JSON은이 구조를 가져야한다. :)

DataTable에서 null 값을 렌더링 할 수 없습니다. 데이터가 null 인 경우 콘텐츠를 설정하려면 defaultContent을 참조하십시오.

참조 링크 : https://datatables.net/reference/option/columns.defaultContent 기존 dataTables를 들어

, http://legacy.datatables.net/ref을 확인하고 fnCallback이 게시물을하시기 바랍니다 기능을 추가겠습니까 sDefaultContent

관련 문제