2013-03-27 39 views
0

該應用程序:我有一個測試應用程序(類似於一個測驗),顯示隨機圖像,用戶單擊單選按鈕評估imgs。我目前使用Javascript來獲取單選按鈕的值。大量數據的PHP/MySQL測試應用程序

我想我需要在JS中創建一個數組來保存答案並以某種方式將該數組轉換爲PHP數組,以便在測試結束時可以將所有答案插入到MySql數據庫中。

更重要的是,數組將包含120個元素!

在這種情況下,我是否應該在數組中保存數據並在JS和PHP之間轉換它們?

,我拿出替代方案:在測試結束時插入

  1. 使用純PHP來處理數據,僅在PHP做陣列。我不認爲每次用戶點擊答案時對數據庫的查詢都是好的,因爲系統中有太多答案(120)和許多用戶在同一時間。

  2. 使用PHP和臨時表來保存答案。在從臨時表到數據將被存儲的表的測試副本數據結束時。

任何人有任何建議嗎?

+0

要在JavaScript和PHP之間傳輸數據,您可以爲陣列使用一些「JSON」格式,每種語言都可以理解。你也可以用JSON製作臨時文件來記錄答案,然後在測試結束時將它們放入數據庫(如果我理解了你的工作流程)。 – Valky 2013-03-27 15:06:06

回答

1

您應該使用JSON。要將答案數組轉換爲javascript中的字符串,只需使用JSON.stringify即可將數組轉換爲字符串。例如:

var jsonnedArray=JSON.stringify(arrayOfAnswers) 

再經過jsonnedArray到服務器,並使用PHP函數json_decode,果然與javascript函數JSON.stringify製成,它代表的值的字符串處理它。然後將其插入數據庫。這裏是一些代碼:

<?php 
#un-jsonnify the arrray of answers 
$arrayOfAnswers=json_decode($_POST['jsonnedArray']); 
#loop through the answers and insert each one into the database 
foreach($arrayOfAnswers as $currentAnswer){ 
    #do something here to insert $currentAnswer into the database 
} 

這是未經測試的,告訴我,如果它不起作用的評論。