为循环选择的选项值

时间:2016-04-19 07:52:35

标签: php forms option selected

我正在尝试创建上一个输出的selected值。 (用户填写表单,提交,返回表单)我希望所选值为用户以前使用的值。

url参数中提供了vraagNummeranswer,并且在for循环中创建了列表中可用项目的下拉菜单。 现在我被困在那一部分。如果在for循环中创建选项值,我如何创建一个选项?

通常我只会放入option value = $vraagNummer selected> <?php echo $vraagNummer ?></option,但在这种情况下,这是行不通的。我想是吗?

任何人都知道如何解决这个问题? 与A / B / C / D相同。如何将选定的answer值放入先前选定的值中,同时仍保留其他值作为选项。

亲切的问候,

if(!empty($_GET['vraagnummer'])){
            $vraagNummer = $_GET['vraagnummer'];
            if(!empty($_GET['answer'])){
                $answer = $_GET['answer'];
            }
        }
        echo $vraagNummer;
        echo $answer;
        ?>

        <form id="start" method="post" action="index.php?test=true">
            <select name="question">
                <?php 
                for($i= 1; $i < $nRows+1 ; $i++){
                    ?><option value="<?php echo $i ?>">Question <?php echo $i?></option>
                    <?php
                }
                ?>
            </select>
            <select name="result">
                <option value="A">Answer A</option>
                <option value="B">Answer B</option>
                <option value="C">Answer C</option>
                <option value="D">Answer D</option>

            <input type="submit" id="submit" value="Submit" />
        </form>

1 个答案:

答案 0 :(得分:3)

您只需使用三元组来测试循环中当前$_GET['question']值的$i

<form id="start" method="post" action="index.php?test=true">
    <select name="question">
<?php 
    for($i= 1; $i < $nRows+1 ; $i++){
        $sel = (isset($_GET['question']) && $_GET['question'] == $i) ? 'selected="selected"' : '';
        echo '<option ' . $sel . ' value="' . $i .">Question ' . $i . '</option>';
    }
?>
    </select>
  

警告:

     

当变量可以包含零时也要小心使用empty(),因为empty()函数将零视为空

其实我会像你这样做你的其他下拉

<select name="result">
foreach (range('A', 'D') as $char) {
    $sel = (isset($_GET['result']) && $char == $_GET['result']) ? 'selected="selected"' : '';
    echo "<option $sel value='$char'>Answer $char</option>";
}
</select>