2011-01-18 5 views
0

내 PHP 코드처럼 보이도록 PHP에서 내 JSON의 responce를 포맷 할 :어떻게이

{"query":c "suggestion":["CA","CO","CT"]} 
내가 원하는 것을 얻을 출력을 준비 할 수있는 올바른 방법을 알아낼 수 없습니다

(

+1

최종 json도 손상되었습니다. 입력을 따옴표로 묶지 않고 '제안'앞에 쉼표를 사용하지 않습니다. – mario

답변

0

루프를 while 루프로 다시 작성하면 제안으로 구성된 배열이 만들어지고 인코딩됩니다.

require ("connect.php"); 

$input = mysql_real_escape_string($_GET["query"]); 
$data = array(); 

$query = mysql_query("SELECT `abbr` FROM `states_list` WHERE `abbr` LIKE '{$input}%'") or die(mysql_error()); 
while ($obj = mysql_fetch_object($query)) { 
    $data[] = $obj->abbr; 
} 
header("Content-type: application/json"); 
echo '{"query":'.$input.' "suggestion":'.json_encode($data).'}'; 

P. 또한 SQL 삽입을 피하기 위해 사용자 입력에서 가져온 문자열을 올바르게 이스케이프하는 것을 잊지 마십시오. 이런 식으로 포맷

2

$json[] = $obj;$json[] = $obj->abbr;으로 변경하십시오.

1

시도 :

$query = "c"; 
$suggestion = array('CA', 'CO', 'CT'); 
$return = array('query' => $query, 'suggestion' => $suggestion); 
echo json_encode($return); 

는 루프에서 $query$suggestion을 구축 할 수 있습니다.