如何在php循环中进行迭代并以HTML下拉形式显示数据


How can I iterate through a php loop and display the data in a HTML drop down form?

我有一些php,它列出了一堆选项(通过循环),并将它们打印在页面上,每个选项都有一行新行。

我希望这些选项出现在一个动态大小的下拉HTML列表中,每个列表都有不同的选项值。

这是PHP(它工作得很好):

if($postOpts) {
    foreach($postOpts as $option)
        echo $option["name"]." - ".$option["price"]."<BR>";
}

//Otherwise, present the default postage option for domestic or international.
else {
        echo "Default Shipping Option - $".$post->getDefaultPrice();
}

我有一个表格,但正如你所看到的,表格中的选项数量是静态的,而不是动态的:

<form> <!-- form action will go here --> 
                <div class="form-group col-xs-12">
                    <div class="col-xs-3 col-md-2 form-label"><label>Shipping Options:</label></div>
                    <div class="col-xs-4 col-md-3">
                        <select class="form-control" name="list" title="pick a type"> 
                            <!-- I assume I need to iterate through options here --> 
                            <option value="01">Shipping1</option> 
                            <option value="02">Shipping2</option> 
                            <option value="03">Shipping3</option>
                        </select>
                    </div>
                </div>
            </form>

EDIT我忘记了PHP中的其他语句,请检查。

将您的选择替换为

<select class="form-control" name="list" title="pick a type"> 
    <?php if(count($postOpts)) { ?>
       <?php foreach($postOpts as $row) { ?>
            <option value="<?= $row["price"] ?>"><?= $row["name"] ?></option> 
        <?php } ?>
    <?php } else { ?>
             <option value="<?= $post->getDefaultPrice() ?>"><?= "Default Shipping Option - $".$post->getDefaultPrice() ?></option> 
    <?php } ?>
</select>

你可以试试这个

    <form> <!-- form action will go here --> 
            <div class="form-group col-xs-12">
                <div class="col-xs-3 col-md-2 form-label"><label>Shipping Options:</label></div>
                <div class="col-xs-4 col-md-3">
                    <select class="form-control" name="list" title="pick a type"> 
                        <option value="">Choose type</option>
                        <?php foreach($postOpts as $option) { ?>
                            <option value="<?php echo $option['name'].' - '.$option['price'];?>"><?php echo $option["name"]." - ".$option["price"]; ?></option> 
                        <?php } ?>
                    </select>
                </div>
            </div>
        </form>