0
我想弄清楚如何使用jQuery的.ajax()
來查詢MySQL表並將結果作爲數組返回。這是我到目前爲止有:php5和jQuery ajax返回數組
的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成功函數,以遍歷數組中的每個結果行...
如果你想要所有的結果,你不應該在while循環中調用mysql_fetch_array嗎?你現在回來的json是什麼樣的? (如果你安裝了firebug,你可以使用console.log(oData)) – machinemessiah 2011-04-20 16:15:57
我會回顯'$ pcAction' ...表名'$ tb_name'可能沒有設置 – colinmarc 2011-04-20 16:20:04
@machinemessiah - 我認爲你說得對mysql_fetch_array在一個循環中,因爲console.log(oData)僅返回1條記錄的結果 – sadmicrowave 2011-04-20 16:23:57