2012-01-14 11 views
0

私は、ユーザーが学生の等級に対応するラジオボタンを選択することで、成績を入力できるようにするPHPスクリプトを用意しています。最終的に提出する前に、選択した成績を見ることができます。また、選択ページに戻り、選択されたラジオボタンを覚えているので、ユーザーが戻るときにすべてを設定する必要はありません。ここまでは私がこれまでにコーディングしたものですが、ユーザーは選択ページに戻りますが、ラジオボタンの選択は復元されません。ページに戻ったときにラジオボタンの選択を復元する

<?php 

session_start(); 

$script_name = $_SERVER["PHP_SELF"]; 

if(!isset($_SESSION["course"]) || !isset($_SESSION["course"])) { 
    $_SESSION["course"] = $_POST["coursename"]; 
    $_SESSION["section"] = $_POST["section"]; 
} 

if(($_SESSION["authenticated"] == true || isset($_POST["back"])) && !isset($_POST["continue"])) { 

    $course = $_SESSION["course"]; 
    $section = $_SESSION["section"]; 
    $file_name = $course.$section.".txt"; 
    $_SESSION["filename"] = $file_name; 

    // Open file containing student names. 
    $fp = fopen($_SESSION["filename"], "r") or die("Could not open file"); 
    $students = array(); 
    $i = 0; 

    echo "<h2>Grades Submission Form</h2>"; 
    echo "<h2>Course: $course, Section: $section</h2>"; 
    echo "<form action=\"$script_name\" method='post'>"; 
    echo "<table border='1'>"; 
    while (!feof($fp)) { 
     $line = trim(fgets($fp)); 
     $students[$i++] = $line; 

     echo "<tr><td>$line</td>"; 
     echo "<td><input type='radio' name=\"$line\" value='A'/>A</td>"; 
     echo "<td><input type='radio' name=\"$line\" value='B'/>B</td>"; 
     echo "<td><input type='radio' name=\"$line\" value='C'/>C</td>"; 
     echo "<td><input type='radio' name=\"$line\" value='D'/>D</td>"; 
     echo "<td><input type='radio' name=\"$line\" value='F'/>F</td>"; 
     echo "</tr>"; 
    } 
    echo "</table><br>"; 
    echo "<input type='submit' name='continue'/>"; 
    echo "</form>"; 

} elseif($_SESSION["authenticated"] == true && isset($_POST["continue"]) && !isset($_POST["back"])) { 

    unset($_POST["continue"]); 
    $keys = array_keys($_POST); 
    $values = array_values($_POST); 

    echo "<h2>Grades to Submit</h2>"; 
    echo "<table border='1'>"; 
    echo "<tr><th>Name</th><th>Grade</th></tr>"; 
    for($i = 0; $i < count($keys); $i++) { 
     echo "<tr><td>{$keys[$i]}</td><td>{$values[$i]}</td></tr>"; 
    } 
    echo "</table><br>"; 

    echo "<form action='confirmation.php' method='post'>"; 
    echo "<input type='submit' value='Submit Grades'/>"; 
    echo "</form>"; 

    echo "<form action=\"$script_name\" method='post'>"; 
    echo "<input type='submit' value='Back'/>"; 
    echo "</form>"; 

} else { 
    header("Location: main.php"); 
} 
?> 

答えて

1

ラジオボタンの状態を含む配列をセッションに格納できます。あなたが戻ってきたら、それをシリアル化してデータを再設定するだけです。

+0

私は、セッション変数配列にラジオ選択値を保存しました。 serialize()と同じように動作するかどうかはわかりません。しかし、選択を元に戻すときには、どのようなグレードがすべての見た目がぼやけて見える名前に対応しているかをチェックする必要があります。これを行う簡単な方法はありますか? –

関連する問題