设置不同的选项并获取其值

时间:2016-04-12 06:06:48

标签: php html html-select

我使用以下代码将各种select元素添加到我的页面。但是,正如我在while循环中执行此操作时,所有元素的值都是相同的

function options($pos, $count) {

    for ($i = 0; $i < $count; $i++) {
        $options = '';

        $STH = //code to get data from db

        $STH->execute();

        while($row2 = $STH->fetch()) {
            $options .="<option>" . $row2['name'] . "</option>";
        }

        $menu= "<select name='filter' id='filter'>
            " . $options . "
            </select>";

        echo $menu;
    }

}

然后我需要在用户按下按钮后获取每个select元素的值。但由于每个select元素的名称相同,我不知道如何做到这一点。有没有解决这个问题的方法?

例如,如果计数为5,则将创建五个单独的下拉列表(即使每个下拉列表中的选项相同)。然后,用户选择与他相关的选项并按下提交按钮。然后,我需要从下拉菜单中获取他所选择的值,但我无法弄清楚如何执行此操作,因为所有下拉菜单的名称都是相同的

2 个答案:

答案 0 :(得分:1)

假设您有许多带动态选项的选择标签

解决方案是让您的选择标签名称不同(动态)

<form method="POST">
<?php
cust_options(5);
function cust_options($count) {
    for ($i = 0; $i < $count; $i++) {
        $options = '';
        $j = 1;
        while($j < 4) {
            $options .="<option>" . 'option'.$j . "</option>";
            $j++;
        }
        $ind = $i+1;
        $temp = 'filter_'.$ind;
        $menu= "<select name='$temp'>
            " . $options . "
            </select>";

        echo $menu;
    }

}
?>
<input type="submit">
<?php print_r($_POST); ?>
</form>

答案 1 :(得分:0)

你应该这样做:

<select name='filter' id='filter'>
  <?php 
     while($row2 = $STH->fetch()) {
            $options .="<option>" . $row2['name'] . "</option>";
     } ?>
</select>";