2013-10-13 4 views
0

매우 간단합니다. 준비된 명령문을 사용하여 데이터를 선택하고 json_encode 형식으로 반환합니다.json_encode가 json 문자열 대신 부울 값을 반환합니다.

문제 :이 같은 대신 반환 된 데이터의 전체 JSON 문자열을 수신, 나는 점점 오전 뭔가 :

[true, true, true, true] 

내 생각 엔이 모든 값이 설정되어 있는지 여부를 확인하는 것이이며, 값이 설정되었는지 여부를 부울 형식으로 반환하는 것입니다.

$stmt = $connection->prepare("SELECT * FROM details WHERE age = ?"); 
$stmt->bind_param('i', $age); 
$stmt->execute(); 
$json = array(); 
while($row = $stmt->fetch()){ 
$json[] = $row; 
} 

echo json_encode($json); 

이것은 내가 사용하고있는 AJAX입니다.

$(document).ready(
    function() { 
     $('#call_back_btn').click(function() { 
      $.post("process.php", { 
       name: $('#name').val(), 
       age: $('#age').val(), 
       value: $('#value').val(), 
       task: "submit_prepared" 
      }, 
      function(data) { 
       alert(data); 
      }) 
     }) 
    }); 

내 데이터가 JSON 문자열로 반환되도록하려면 어떻게해야합니까? 감사합니다.

+0

경고하기 전에'data = JSON.parse (data); '를 사용하십시오. –

+0

@VedantTerkar 왜 그렇게 빨습니까? 어떻게 AJAX의 이름을 다시 쓰고 JSON.parse (데이터)를 사용합니까? –

+0

@VedantTerkar 여전히 부울 json 문자열을 반환합니다. 나는 'data = JSON.parse (data);'를 삽입했다. 경고 직전. –

답변

3

$stmt->fetch()에 대한 설명서를 참조하십시오. 불리언을받는 것은 완전히 맞습니다. bind_result을 사용하도록 코드를 수정했습니다.

$stmt = $connection->prepare("SELECT name, age FROM details"); 
$stmt->execute(); 
$stmt->bind_result($name, $age); 
$json = array(); 
while($stmt->fetch()){ 
    $json[] = array("name" => $name, "age" => $age); 
} 

echo json_encode($json); 
+0

이제 이것으로 나는 [object Object]를 얻고 있습니다 ... (내 추측) 좋습니다. 자 ... 어떻게 정보를 제공 할 수 있을까요? 내가해야 할 일이 더 있니? –

+0

+1 남자부터! 멋지다. –

+0

@TiffanyLowe get_result를 호출하여 결과 세트를 얻을 것이라고 생각합니다. 이 결과 집합의 행을 반복하려면 $ resultset-> fetch_array()를 사용해야합니다. – Markus

1

배열이 정확한지 확인하기 위해 PHP에서 $ json을 인쇄 해보십시오. 그런 다음 json_encode ($ json) 변수를 ajax없이 PHP에서 다시 인쇄하십시오. 일반적으로 쿼리를 하드 코딩하고 브라우저에서 직접 실행합니다. 이렇게하면 올바른 데이터가 php에 의해 생성되는지 확인하게됩니다.

$ .ajax 함수를 사용해보십시오. 이렇게하면 더 많은 제어 권한을 갖게됩니다.

$.ajax({ 
    url: 'process.php', 
    type: 'POST', 
    dataType: 'JSON', 
    data: {YOUR DATA GOES HERE}, 
    success: function(data){ 
      alert(data); 
    } 
}); 
+0

'$. post '로'dataType'을 설정할 수 있습니다. – Musa

관련 문제