2011-04-20 5 views
0

jQuery의 .ajax()을 사용하여 MySQL 테이블을 쿼리하고 결과를 배열로 반환하는 방법을 알아 내려고합니다.php5 및 jQuery 아약스 리턴 배열

jQuery를 :

$.ajax({url: 'procedures?', 
    data: {Action: 'GetSuggestList' }, 
    dataType: "json", 
    success: function(oData){ 
     if(oData.errormsg != null) 
       alert('failed: ' + oData.errormsg); 
     alert(oData.results); 
}}); 

PHP 코드 (가정 내 mysql_connect()mysql_select_db()이 유효) : 이것은 내가 지금까지 무엇을 가지고 잘 모르겠어요

$pcAction = isset($_REQUEST['Action']) ? $_REQUEST['Action'] : "" ; 
if($pcAction=='GetSuggestList'){ 
    $tb_name = 'suggestions'; 
    echo json_encode(DoGetSuggestList($tb_name)) ; 
} 

function DoGetSuggestList($ptb_name){ 
    $qry_suggest = mysql_query('SELECT * FROM ' . $ptb_name . ' WHERE Active ORDER BY updated DESC'); 
    $rsl_suggest = mysql_fetch_array($qry_suggest); 
    $jSONreturn = array("errormsg" => $jSONerror, "results" => $rsl_suggest); 

    return $jSONreturn; 
}; 

그 밖의 무엇을 내 AJAX 성공 함수 배열에 각 결과 행을 반복 할 수 있어야합니다 ...

+2

모든 결과를 원하면 while 루프에서 mysql_fetch_array 호출을 사용하지 않아야합니까? 자네가 돌아오고있는 json이 지금 어떻게 생겼어? (firebug가 설치되어 있다면 console.log (oData)를 사용할 수 있습니다) – machinemessiah

+0

'$ pcAction'을 echo합니다 ...'$ tb_name' 테이블 이름을 설정할 수 없습니다 – colinmarc

+0

@ machinemessiah - 당신이 mysql_fetch_array를 가지고 있다고 생각합니다. 루프에서 console.log (oData)가 단 하나의 레코드 결과를 리턴하기 때문에 – sadmicrowave

답변

3

나는 당신이 쿼리의 결과가 필요하다고 생각 json_encode() 전에 어소시에이트 배열에 덤프되었습니다.

while(...) { 
    $a_results[] = array('s_column' => $row['column']); 
} 

return json_encode(array('errormsg' => $jSONerror, 'results' => $a_results));