2013-03-13 94 views
0

基本上,我使用本地PHP文件的JSON響應在div內追加數據,目前它只返回一個變量,其中顯示了我正在使用的代碼在這裏:在JSON/PHP中返回多個變量

$.ajax({ 
     url: "functions/ajax.php", 
     data: "func=auto", 
     type: "GET", 
     dataType: "json", 
     success: function(data){ 
      $.each(data.search, function (i, v) { 
        $div = $('.bs-docs-example'); 
        $div.append('+ v +'); 
      }); 
     }, 
     error: function (jqXHR, textStatus, errorThrown){ 
      console.log('Error ' + jqXHR); 
     } 
    }); 

這是返回JSON的代碼是目前

while($row = mysql_fetch_assoc($res)) { 
    $search[] = $row['number']; 
} 
echo json_encode($search); 

我想要做的就是這樣的事情

while($row = mysql_fetch_assoc($res)) { 
    $search[] = $row['number']; 
    $search[] = $row['name']; 
} 
echo json_encode($search); 

但如果我是做到以下幾點,如何將我的success訪問兩個numbername因爲jQuery開發它的使用$.each(data.search, function (i, v) {這意味着原來$search[] = $row['number']現在存儲內部v

我會做一些解析像v['name']v['number']還是那個完全錯誤的?

回答

2

你想傳遞一個關聯數組json_encode:

$search['number'] = $row['number']; 
$search['name'] = $row['name']; 
json_encode($search); 

或者,是否會有結果的多行,關聯數組的數組:

while($row = mysql_fetch_assoc($res)) { 
    $search[] = $row; 
} 

然後通過名稱訪問JavaScript中的值:

var name = v['name']; 

var name = v[0]['name'] 

如果您使用多行結果。

+0

您可以放棄while循環,並執行json_encode(mysql_fetch_assoc($ res)),我相信,假設沒有理由只通過這兩列專門。 – jdp 2013-03-13 20:58:40

+0

是的,你可以;如果需要對行進行一些預處理,我離開了循環。如果不是所有返回的列都在JSON輸出中。 – Adrian 2013-03-13 20:59:23

+1

完美無缺,只有很少但非常確切的解釋+1 – 2013-03-13 21:02:51