簡體   English   中英

獲取在for循環中生成的單選按鈕的值

[英]Getting values of radio buttons generated in for loop

我目前在codeigniter框架上運行,遇到了一些麻煩。 我正在從數據庫中檢索一個問題列表和一個可能的答案列表(類似問卷),然后將其加載到參與者中進行嘗試。

由於我正在使用for循環,因此無法更改單個問題的名稱或id值。 我通過將問題ID附加到名稱/ ID來克服這一問題。

當我將其發布到我的控制器時,麻煩就來了。 需要將結果重新插入數據庫時​​,如何區分它?

 <?php foreach($dbresult->result() as $row) {?>

            <p><?php echo $row->Question ;?></p>
            <?php if ($row->QuestionType == "MCQ"){ ?>

            <ul>
                <li><b>A: </b><?php echo $row->SelectionA; ?></li>
                <li><b>B: </b><?php echo $row->SelectionB; ?></li>
                <li><b>C: </b><?php echo $row->SelectionC; ?></li>
                <li><b>D: </b><?php echo $row->SelectionD; ?></li>
            </ul>

           Select one of the following options:<br>
            <input type="radio" name="<?php echo $row->QuestionID;?>.Ans" required value="A">A<br>
            <input type="radio" name="<?php echo $row->QuestionID;?>.Ans" value="B">B<br>
            <input type="radio" name="<?php echo $row->QuestionID;?>.Ans" value="C">C<br>
            <input type="radio" name="<?php echo $row->QuestionID;?>.Ans" value="D">D<br>
            <?php } elseif($row->QuestionType== "truefalse") {?>

           Select one of the following options:<br>
                <input type="radio" name="<?php echo $row->QuestionID;?>.Ans" value="true">True<br>
                <input type="radio" name="<?php echo $row->QuestionID;?>.Ans" value="false">False<br>
            <?php } else {?>
                <input type="radio" name="<?php echo $row->QuestionID;?>.Ans" value="ok">OK<br>
                <input type="radio" name="<?php echo $row->QuestionID;?>.Ans" value="agree">Agree<br>
            <?php }?>
<?php } ?>

以上是我打印出問卷的方式,對此有什么解決方案?

擁有這樣的名稱屬性很難管理。

使用分組名稱屬性:

name="answers[<?php echo $row->QuestionID;?>]"

簡單的例子:

<?php foreach($dbresult->result() as $row) {?>
    <p><?php echo $row->Question ;?></p>

    <?php if ($row->QuestionType == "MCQ"){ ?>

        <ul>
            <li><b>A: </b><?php echo $row->SelectionA; ?></li>
            <li><b>B: </b><?php echo $row->SelectionB; ?></li>
            <li><b>C: </b><?php echo $row->SelectionC; ?></li>
            <li><b>D: </b><?php echo $row->SelectionD; ?></li>
        </ul>

       Select one of the following options:<br>
        <input type="radio" name="answers[<?php echo $row->QuestionID;?>]" required value="A">A<br>
        <input type="radio" name="answers[<?php echo $row->QuestionID;?>]" value="B">B<br>
        <input type="radio" name="answers[<?php echo $row->QuestionID;?>]" value="C">C<br>
        <input type="radio" name="answers[<?php echo $row->QuestionID;?>]" value="D">D<br>

    <?php } elseif($row->QuestionType== "truefalse") {?>

       Select one of the following options:<br>
            <input type="radio" name="answers[<?php echo $row->QuestionID;?>]" value="true">True<br>
            <input type="radio" name="answers[<?php echo $row->QuestionID;?>]" value="false">False<br>

    <?php } else {?>

        <input type="radio" name="answers[<?php echo $row->QuestionID;?>]" value="ok">OK<br>
        <input type="radio" name="answers[<?php echo $row->QuestionID;?>]" value="agree">Agree<br>

    <?php }?>
<?php } ?>

因此,在PHP中,您可以通過其名稱來調用它:

public function controller_name()
{
    $answers = $this->input->post('answers');
    foreach($answers as $question_id => $answer) {

    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM