0

私はオンラインの無料試験ウェブサイトに取り組んでいます。PHP、jQuery、およびセッションを使用して、フロントエンドに選択肢のある質問を表示しています。ユーザーが表示された選択肢の中から任意の選択肢をクリックすると (すべての選択肢に同じ名前のラジオ ボタンが表示されます)、選択した質問番号と選択肢 (answer1/answer2 から answer2 まで) をセッション変数に保存し、現在のquesno選択肢と選択肢を前の選択肢に追加します。

問題は、既に回答した回答を変更したい場合、更新するのではなく、新しい結果として追加するだけです。

そのセッション変数をループしようとしましたが、スタックしました。以下は、セッション変数に保存しているデータ形式です。

if( $_POST['qno'] && $_POST['choice'] ){
    $ques_no = $_POST['qno'];
    $selected_choice = $_POST['choice'];// choices in radio buttons with name choice


    if( isset($_SESSION['result']) ){

        //here i'm trying to loop though $_SESSION['result'] to check the below format
 >> ','.$ques_no.',' << in session so that it can be changed, i stuck here.


        $_SESSION['result']=$_SESSION['result'].','.$ques_no.','.$selected_choice.'|';
    }else{
        $_SESSION['result'] = ','.$ques_no.','.$selected_choice.'|';
    }
}

この手順に従っても問題ない場合は、ループ スルーのプロセスを教えてください。そのパターンがセッションに存在するかどうかを確認してください。手順が間違っている場合は、ご案内ください。

4

2 に答える 2

2

これを実現する最も簡単な方法は$_SESSION['result']、文字列ではなく配列を作成することです。その後、 if ステートメントについてまったく心配する必要はありません。$_SESSION['result']存在することを確認することを除いて、単一のステップで値を割り当てるだけで完了です。

if (!isset($_SESSION['result'])) $_SESSION['result'] = array();
$_SESSION['result'][$ques_no] = $selected_choice;

他のコードを編集して配列として解釈するようにしてください$_SESSION['result']。そうしないと、予期しない結果が得られます。

于 2013-09-10T14:27:45.643 に答える