2014-07-20 7 views
0

저는 dataTable을 사용하고 있으며 Json 구문 분석 오류가 발생합니다. 나는 데이터가 반환되는 것을 볼 수 있도록 JSON이 HTML 결과를 반환합니다.

jQuery(function($){ 
     $('#allusers').dataTable({ 
      "sAjaxSource": document.URL+"/allusers.php" 
     }); 

     $.ajax({ 
      url: document.URL+"/allusers.php", 
      success: function(data){ 
       alert (data); 
      } 
     }); 
    }); 

는 그래서 $.ajax 부분을 삽입 : 여기 내 코드입니다. (글쎄, 방화범이 끌리는 것을 볼 수도 있고, 확실하게하고 싶다.) 그리고 내가 얻고있는 응답은 JSON 객체 대신 HTML 코드이다. 여기

는 allusers.php의 조각입니다 :

$dataArr['aaData'] = Array(); 
$res = $mysqli->query($query); 
$numrows = $res->num_rows; 
$output = array('iTotalRecords' => $numrows, "iTotalDisplayRecords" => 10, "aaData" => array()); 
if ($res = $mysqli->query($query)){ 
    while($row = $res->fetch_array(MYSQLI_ASSOC)){ 
     $r = Array(); 
     foreach($row as $key=>$value){ 
      $r[] = $value; 
     } 
     $output['aaData'][] = $r; 
    } 
} else 
    die(mysql_errno()); 
$output['err'] = 'hello'; 
header('Content-Type: application/json'); 
echo json_encode($output); 
exit(); 

이미 $ 출력의 내용을 확인하기 위해 var_dump($r)을 시도하고 나는 그것으로 문제가 표시되지 않습니다.

그래서 내가지고있어 결과는 다음과 같습니다

<!DOCTYPE html> 
<html class="home"> 
<head> 
<title>User List</title> 
... 

는 기본적으로 전체 페이지의 HTML 콘텐츠를 반환합니다. 자바 스크립트 또는 PHP 내에서 문제가 있습니까? 도움에 미리 감사드립니다!

+0

보기가 포함되지 않았거나보기로 MVC 프레임 워크를 통해 이것을 실행하지 않는 한 이해가되지 않습니다. – charlietfl

+1

주어진 URL을 브라우저에 넣고 무슨 일이 발생하는지 확인하려고합니다. (js 생성 된 URL을 의미합니다. :'document.URL + "/ allusers.php"') – Axidepuy

+0

@charlietfl 안녕하세요, 저는 EdenPHP MVC 프레임 워크를 사용하고 있습니다. 어떤 내용이 이에 영향을 미칠 수 있습니까? – bless1204

답변

0

PHP 프레임 워크에서 요청한 데이터 유형을 존중하는지 여부는 확실하지 않지만 JSON을 구체적으로 요청하면 시작할 수 있습니다.

$.ajax({ 
     url: document.URL+"/allusers.php", 
     dataType: "application/json", 
     success: function(data){ 
      alert (data); 
     } 
    }); 

또는 JQuery와 JSON 바로 가기 사용 : 어느 지정

$.getJSON("url", data, callbackFuntion); 

$ 아약스() 메소드는 출력을 맞춰 지능적으로하는 기본, 그래서 것 이상은 선택하지 않습니다 귀하의 콘텐츠 유형에.

필자가 마지막으로 생각한 것은 PHP 헤더와 푸터를 어떻게 든 전역 적으로 지정했기 때문에 출력에 추가됩니다.

+0

그것을 시도, 나는 또한 오류를 추가했습니다 : 함수 (데이터) 이제 경고 [객체] [객체] – bless1204

+0

좋아, 그럼, 어딘가에, 당신은 2 개체의 배열을 가지고있어. 그들은 json일지도 모른다. 당신이 검사하거나 console.log()하면 그것들은 무엇입니까? 가장 중요한 것은 succes() 또는 error() 콜백 함수의 출력 이었습니까? – Brunis

0

이 문제는 이미 해결되었습니다. 내가 MVC를 사용하고 있기 때문에, 그때 컨트롤러의 기능을 넣어 그냥이 같은 코드를 추가 :

if (isset($_GET["var"])) 
    function(); 

도 내가 헤더를 제거 ('콘텐츠 유형 : 응용 프로그램/JSON을');

이유를 모르겠지만 제거했을 때 효과가있었습니다. 아이디어에 대한 모든 것을 제공해 주셔서 감사합니다. :)

관련 문제