0

データベースに既に入力されているユーザーの値に基づいて、「チェック済みステートメント」を追加しようとしています。

データベース側をq1、q2などとして設計し、「a」、「b」、または「c」を持つ単一のvarcharを持っています。

基本的に、コードで回答を取得し、それを「チェック済み」としてチェックボックスに入れたいのですが、何らかの理由で機能させることができません。

これまでの私のコードは次のとおりです。

<?php
//retreive questions from database and put into question box

$query2 = "SELECT `QuestionId`, `Question`, `Opt1`, `Opt2`, `Opt3`, `Opt4`,`Answer` FROM `pf_questions`";

$question2 = mysql_query($query2);

while($row = mysql_fetch_array($question2)){

    $id         = $row['QuestionId'];
    $question   = $row['Question'];
    $opt1       = $row['Opt1'];
    $opt2       = $row['Opt2'];
    $opt3       = $row['Opt3'];
    $opt4       = $row['Opt4'];
    $answer     = $row["Answer"];

?>
<div id="ContainerQuestion">
    <span class="Question">Question <?php echo $id; ?>. <?php echo $question; ?></span>

        <p><input type=radio name='q<?php echo $id; ?>' value="a"> <?php echo $opt1; ?> </p>
        <p><input type=radio name='q<?php echo $id; ?>' value="b"> <?php echo $opt2; ?> </p>
        <p><input type=radio name='q<?php echo $id; ?>' value="c"> <?php echo $opt3; ?> </p>

        <p><input type=radio name='q<?php echo $id; ?>' value="d"> <?php echo $opt4; ?> </p>


</div>
<?php
}

?>

while 関数内でクエリを実行し、各入力タイプに if($row['1'] = 'a') echo "checked='checked'"; と言うだけでよいでしょうか。または私は間違っていますか?

どんな助けも素晴らしいでしょう。ありがとう

4

5 に答える 5

1
<p><input type=radio name='q<?php echo $id; ?>' <?php echo $answer == 'a'?'checked="checked"':'' ?> value="a"> <?php echo $opt1; ?> </p>
<p><input type=radio name='q<?php echo $id; ?>' <?php echo $answer == 'b'?'checked="checked"':'' ? value="b"> <?php echo $opt2; ?> </p>
<p><input type=radio name='q<?php echo $id; ?>' <?php echo $answer == 'c'?'checked="checked"':'' ? value="c"> <?php echo $opt3; ?> </p>
<p><input type=radio name='q<?php echo $id; ?>' <?php echo $answer == 'd'?'checked="checked"':'' ? value="d"> <?php echo $opt4; ?> </p>
于 2012-10-01T13:28:30.873 に答える
0

ラジオボタンを次のように変更します。

<p><input type=radio name='q<?php echo $id; ?>' value="a" <?php echo ($row[1] == 'a') ? 'selected="selected"':''; ?>> <?php echo $opt1; ?> </p>
<p><input type=radio name='q<?php echo $id; ?>' value="b" <?php echo ($row[1] == 'b') ? 'selected="selected"':''; ?>> <?php echo $opt2; ?> </p>
<p><input type=radio name='q<?php echo $id; ?>' value="c" <?php echo ($row[1] == 'c') ? 'selected="selected"':''; ?>> <?php echo $opt3; ?> </p>
<p><input type=radio name='q<?php echo $id; ?>' value="d" <?php echo ($row[1] == 'd') ? 'selected="selected"':''; ?>> <?php echo $opt4; ?> </p>
于 2012-10-01T13:25:51.963 に答える
0

この方法で試してください

 <p><input type="radio" name="q<?php echo $id; ?>" value="a" <?php if($opt1=='a') echo "checked='checked'"; ?>><?php echo $opt1; ?> </p>
于 2012-10-01T13:26:02.680 に答える
0

を使用して、回答がオプションに一致するかどうかを簡単に確認できます

<?=( $answer  == 'a')?("checked='checked'"):(""); ?> 

答えがオプションechoと同じである場合、checked='checked'それ以外の場合は空の文字列

完全なコード

   <?php
    //retreive questions from database and put into question box

    $query2 = "SELECT `QuestionId`, `Question`, `Opt1`, `Opt2`, `Opt3`, `Opt4`,`Answer` FROM `pf_questions`";

    $question2 = mysql_query($query2);

    while($row = mysql_fetch_array($question2)){

        $id         = $row['QuestionId'];
        $question   = $row['Question'];
        $opt1       = $row['Opt1'];
        $opt2       = $row['Opt2'];
        $opt3       = $row['Opt3'];
        $opt4       = $row['Opt4'];
        $answer     = $row["Answer"];




    ?>
    <div id="ContainerQuestion">
        <span class="Question">Question <?php echo $id; ?>. <?php echo $question; ?></span>

            <p><input type=radio name='q<?php echo $id; ?>' <?=( $answer  == 'a')?("checked='checked'"):(""); ?>  value="a"> <?php echo $opt1; ?> </p>
            <p><input type=radio name='q<?php echo $id; ?>' <?=( $answer  == 'b')?("checked='checked'"):(""); ?> value="b"> <?php echo $opt2; ?> </p>
            <p><input type=radio name='q<?php echo $id; ?>' <?=( $answer  == 'c')?("checked='checked'"):(""); ?> value="c"> <?php echo $opt3; ?> </p>

            <p><input type=radio name='q<?php echo $id; ?>' <?=( $answer  == 'd')?("checked='checked'"):(""); ?> value="d"> <?php echo $opt4; ?> </p>


    </div>
    <?php
    }

    ?>

あなたの答えがに保存されていると仮定すると、$row["Answer"];オプション(a、b、c、d)と同じです

于 2012-10-01T13:26:16.133 に答える
0

$answerフィールドが「a」、「b」、「c」、または「d」のいずれかであると仮定すると、これは機能するはずです。

<p><input type=radio name='q<?php echo $id; ?>' value="a" <?php if($answer == 'a'){ echo "checked='checked'";} ?>> <?php echo $opt1; ?> </p>
于 2012-10-01T13:30:25.493 に答える