1

データベースに質問と回答を表示するフォームを作成していますが、ユーザーがマークした回答を保存する必要があります。

各 RadioButton または select ドロップダウンの名前が必要です。問題: php と html を組み合わせていますが、ラジオボタンの名前を渡す方法や、構文的に正しいドロップダウンの名前を選択する方法がわかりません。ラジオボタンの回答名は、それらすべてを表示するための ID (RADIO17、Radio18、RADIO19、RADIOX...) です。RADIO19 など、ユーザーがチェックしたラジオボタンの特定の ID を保存する必要があります。助けてください。

        <!--RADIO BUTTON--> 

                <div>
                    <label class="desc"name="question" value=" <?php $row_questionset['QuestionIDFKPK'];?>">
                    <?php echo $row_questionset['QuestionValue']; ?>

                    </label>
                </div>
                    <?php while ($row_Answer=mysql_fetch_array($AnswersValue)){ ?>  
                    <fieldset class="radios">

                        <label class="label_radio">


                        **<input name="RADIO<?= $row_Answer['AnswerIDPK'] ?>" value="  <?= $ValueIDradio=$row_Answer['AnswerIDPK'] ?>" type="radio"  />**
                        <?php echo $row_Answer['AnswerValue']; ?> 
                        </label>


                    <?php }  ?>
                    </fieldset>


        <!--INSERTING ANSWERS-->
                                <?php

                                    $name=$_POST['RADIO1']; 

                                if(isset($_POST['submit'])){



                    ??????? -> $name=$_POST['RADIO$row_Answer['AnswerIDPK']'];  

                                $query_AnswerSelected="SELECT * FROM tblanswer WHERE tblanswer.AnswerIDPK = '".$name."' ";
                                $AnswersValueSelected= mysql_query($query_AnswerSelected);                                                                      
                                $row_AnswersValueSelected=mysql_fetch_array($AnswersValueSelected);
                                $Avalue= $row_AnswersValueSelected['AnswerValue'];
                                $useranswer= "INSERT INTO `nuevaspruebas`.`tbluseranswer` (`UserIDFKPK`, `AnswerIDFKPK`, `QuestionIDFK`, `AnswerValue`) VALUES ('$UserId','$name', '$QuestionID',  '$Avalue')";
                                mysql_query($useranswer);   
                                <?= $nameradio=$row_Answer['AnswerIDPK'] ?>;
                                }
                                    ?>
                                <!--INSERTING ANSWERS-->


            <!--RADIO BUTTON--> 


<?php } ?>
4

2 に答える 2

1

回答の場合、attrbuiteという名前で質問IDを渡す必要があり、回答の値を値attrで渡す必要があります。

このコードを実行して、アイデアを取得します。

<?php
    if($_POST['submit']){
        #you can loop through answers using
        foreach($_POST['question'] as $quesID => $ansID){
            //action goes here
        }
        #view all the posted data
        echo "<pre>";
        print_r($_POST);
        echo "</pre>";
    }
?>
<?php
    $FirstQuestionID = 1;
    $SecondQuestionID = 2;
?>
<form method=post action=<?=$_SERVER['PHP_SELF'];?> >
    first question
    <br />
    <input type="radio" name="question['<?=$FirstQuestionID;?>']" value='1' />
    <input type="radio" name="question['<?=$FirstQuestionID;?>']" value='2' />
    <input type="radio" name="question['<?=$FirstQuestionID;?>']" value='3' />
    <input type="radio" name="question['<?=$FirstQuestionID;?>']" value='4' />
    <br />
    second question
    <br />
    <input type="radio" name="question['<?=$SecondQuestionID;?>']" value='1' />
    <input type="radio" name="question['<?=$SecondQuestionID;?>']" value='2' />
    <input type="radio" name="question['<?=$SecondQuestionID;?>']" value='3' />
    <input type="radio" name="question['<?=$SecondQuestionID;?>']" value='4' />
    <br />
    <input type=submit name=submit value=submit />
</form>
于 2012-11-12T10:12:41.670 に答える
0

相互に排他的なラジオ ボタンがある場合は、すべてに同じ名前を付ける必要があります。その意味で、RADIO1、RADIO19、RADIOxx などの名前を付けるという戦略は、(1 つだけではなく) すべてのラジオをチェックできるため、問題を引き起こします。

次のようなものを試してください:

<input name="radioName" value="<?= $ValueIDradio=$row_Answer['AnswerIDPK'] ?>" type="radio" />

回答を挿入すると、ここでチェックされたラジオがわかります。

$radioChecked = $_REQUEST['radioName'];

于 2012-11-12T09:52:09.133 に答える