php5 и jQuery ajax возвращают массив - PullRequest
0 голосов
/ 20 апреля 2011

Я пытаюсь выяснить, как использовать jQuery .ajax() для запроса таблицы MySQL и возврата результатов в виде массива. Это то, что я до сих пор:

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, чтобы перебирать каждую результирующую строку в массиве ...

1 Ответ

3 голосов
/ 20 апреля 2011

Я думаю, вам нужно, чтобы результаты запроса были выгружены в ассоциированный массив, прежде чем json_encode() их.

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

return json_encode( array('errormsg' => $jSONerror, 'results' => $a_results) );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...