2013-02-21 181 views
0

我想通過jQuery,Ajax和PHP從SQL數據庫獲取數據。jQuery,Ajax從數據庫獲取數據

這裏是jQuery代碼

$.ajax({ 
    url: 'OpenQuiz.php', 
    data: '', 
    dataType:'json', 
    success: function(data) { 
     var one = data[0]; 
    } 
} 

$(document).ajaxComplete(function(event,request,settings) { 
    alert("check"); 
} 

這裏是JSON編碼線在被稱爲 「OpenQuiz.php」 的PHP文件的末尾

echo json_encode($QuizName); 
echo json_encode($options); 
echo json_encode($votes); 
echo json_encode($row_num); 
echo json_encode($percentage); 
echo json_encode($TruncPercentage); 

請注意: $選項,$票,$百分比和$ TruncPercentage都是二維數組。 $ row_num是一個整數。 $ Quiz_Name是一個一維數組。

我發現jQuery運行良好,並且調用了ajax請求,因爲顯示「check」的警告框。問題是,我不知道如何訪問變量後,他們已被轉移。我知道它與數據[0]有關,但我並不真正瞭解「數據[0]」的含義或其所代表的含義。基本上如何訪問我在PHP文件中使用json_encode發送的變量?

回答

1

data [0]是返回數組中第一個json_encoded項目。你不應該單獨json_encode編碼,你應該建立一個數組並且json_encode這個。

$items = array('QuizName'=>$QuizName,'options'=>$options, ... ,'TruncPercentage'=>$TruncPercentage); 

echo json_encode($items); 

然後你檢索與:

success: function(data) { 
    var qn = data.QuizName, 
     opt = data.options; 
} 

等了每個項目,用數據[無論]和[無論]是你給它數組中的項目的名稱。我知道我最初說索引(數據[0])檢索,但我更願意顯式檢索,以便代碼更易於維護。

header('Content-type: application/json'); 

配售,在該文件的頂部將在服務器強制:

作爲一個側面說明,你可以通過簡單地正確設置標題在PHP端消除你的Ajax調用datatype:'json'聲明將頁面識別爲json。比jQuery尋找它更加一致和明確。

+0

如何在PHP中創建一個變量數組(這是不同類型的)? – 2013-02-21 16:23:59

+0

用簡單的例子編輯我的答案。 – PlantTheIdea 2013-02-21 16:30:43

+0

有道理。因此,由於$ QuizName是一個二維數組,因此要訪問該數組中的單個值,我將不得不使用data.QuizName [x] [y],其中x和y定義了二維數組中值的位置? – 2013-02-21 16:34:30