为什么我的foreach循环会创建单独的下拉列表


Why does my foreach loop create separate drop down lists?

我使用下面的函数getAllMifs(),它使用PDO::FETCH_OBJ返回一个名为$mifs的stdClass对象。

这是我的型号:

public function getAllMifs()
{
    $sql = "SELECT id, color, L, A, B FROM pantonePlus2010";
    $query = $this->db->prepare($sql);
    $query->execute();
    return $query->fetchAll();
}

这是我的控制器:



Class Mifs extends Controller
{
    public function index()
    {
        echo 'Message from Controller: You are in the Controller: Mifs, using the method index().';
        $mifs_model = $this->loadModel('MifsModel');
        $mifs = $mifs_model->getAllMifs();

        // load views. within the views we can echo out $mifs and $amount_of_mifs easily
        require 'application/views/_templates/header.php';
        require 'application/views/mifs/index.php';
        require 'application/views/_templates/footer.php';
    }

这是我的视图文件:

<div>
    <?php foreach ($mifs as $mif) { ?>
        <form name="mifselect" action="<?php echo URL . 'mifs/downloadmif/' . $mif->id; ?>">
            <select name="mifselect">
                <option value="<?= $mif->id ?>"><?= $mif->color ?></option>                    
            </select>
            <input type="submit" value="Submit">
        </form>
    <?php } ?>
</div>

我想不出的问题是如何将结果放入一个下拉菜单中。我试图附上一张屏幕截图,显示foreach($mifs为$mif)创建的stdClass数组和五个下拉列表,但这是我的第一篇文章,Stackoverflow要求我有10个信誉才能发布图像。。。

我已经用PDO_ASSOC和PDO_OBJ尝试过了,但我仍然得到了五个下拉列表。

这一定是问题所在:id?>">颜色?>代码,但我找不到只得到一个下拉列表的更正。

感谢您的帮助,提前感谢!

请仅在循环中放置选项

<div>
    <form name="mifselect" action="<?php echo URL . 'mifs/downloadmif/' . $mif->id; ?>">
    <select name="mifselect">
    <?php foreach ($mifs as $mif) { ?>    
                <option value="<?= $mif->id ?>"><?= $mif->color ?></option>                    
    <?php } ?>
    </select>
    <input type="submit" value="Submit">
    </form>
</div>