2014-10-02 28 views
2

我的測驗表單有點麻煩。我正在使用一個頁面來顯示用戶回答的單個問題,從那裏我希望保存問題ID和選項ID(我的表單是多項選擇,我設置了選項)。

我的HTML看起來像這樣:

<input type="radio" name="question[3]" value="4">My Answer 

當窗體發佈我這樣做

if(isset(Yii::$app->session['question'])){ 

       // Get posted array 
       $question = $_POST['question']; 
       Yii::$app->session['question'] = $question; 
       print_r(Yii::$app->session['question']); 
      } 

所以它保存到我的會議爲:

Array 
(
[3] => 4 
) 

哪個好的,我發現的問題是在不覆蓋以前的[question_id] => [opt。]的情況下嘗試保存下一個問題ion_id。

我明白爲什麼下面的代碼只是覆蓋現有的session ['question']變量。但我很努力地能夠將每個問題和答案數組保存到我的變量中。

我已經試過Yii::$app->session['question'][$i] = $question;並獲得Indirect modification of overloaded element of yii\web\Session has no effect

我也試過array_pusharray_merge嘗試和問題,選擇選項前面的陣列組合,但要麼沒有運氣。請問我在這裏做錯了什麼?

+0

http://stackoverflow.com/questions/25079781/how- Yii:$ app-> session should be add-more-user-identity-session-attributes-in-yii2 http://www.yiiframework.com/doc-2.0/yii-web-session.html – Kshitiz 2014-10-04 06:09:06

回答

2

正確的方法是

$q = $_POST['question']; 
Yii::$app->session['question'] = array_merge(Yii::$app->session['question'], [$question]); 
+0

Yii:$ app-> session should be義i :: $ app-> session - 注意double :: – Liam 2016-04-19 11:22:57

1

你應該做

Yii::$app->session['question'][] = $question; 

注意做到這一點額外的[]