繁体   English   中英

我怎样才能把我的国家数组放到一个<select>标签?

[英]How can I put my array of countries into a <select> tag?

所以,我在混合 html/php 项目中做一个表单,我想要一个选择标签,该标签提供所有国家/地区列表的选项。 我将我的列表存储在一个数组“国家”下,如下所示:

$countries = array("Afghanistan", "Albania", "Algeria", ...."Zambia", "Zimbabwe");

并尝试在我的选择标签中循环,以便每个国家/地区都会弹出一个选项标签。

<div class="form-group">
                            <label for="countries" class="col-md-3 control-label">Countries</label>
                            <div class="col-md-6">
                                <select class="form-control" id="countries" name="countries">
                                    <?php foreach ($countries as $country) { ?>
                                        <option value="<?= $countries->country ?>"><?= $countries->country ?></option>
                                    <?php } ?>
                                </select>
                            </div>
                            <div class="col-md-3 error">
                                <?php error('countries'); ?>
                            </div>
                        </div>

但我得到的是“试图获得非对象的属性”

所以因为我在 php 方面没有进步,如果有人愿意帮助我,我会被正在发生的事情阻止。 谢谢

$countries 是一个数组,您正在使用 foreach 循环将数组的值传递给 $country。 你只是为了回应 $country。

<div class="form-group">
       <label for="countries" class="col-md-3 control-label">Countries</label>
       <div class="col-md-6">
            <select class="form-control" id="countries" name="countries">
                  <?php foreach ($countries as $country) { ?>
                       <option value="<?= $country ?>"><?= $country ?></option>
                  <?php } ?>
              </select>
        </div>
        <div class="col-md-3 error">
              <?php error('countries'); ?>
        </div>
</div>

希望这对你有帮助:)

显然这是错误的部分:

<?php foreach ($countries as $country) { ?>
    <option value="<?= $countries->country ?>"><?= $countries->country ?></option>
<?php } ?>

因为foreach ($countries as $country)意思是“进入$countries并在每次迭代中保存$country的当前元素”,所以代码应该如下所示:

<?php foreach ($countries as $country) { ?>
    <option value="<?= $country ?>"><?= $country ?></option>
<?php } ?>

如果循环$countries as $country的foreach ,每个元素$countries保存在$country在循环的每个实例。

这意味着,要打印每个国家/地区,循环如下所示:

foreach ($countries as $country) {
  echo $country;
}

另一种方法是只使用 for 循环。 给定数组$countries ,你可以这样做:

<select name="country">
<?php
$ct = count($countries)
for($i=0;$i<=$ct;$i++){
$country = $countries[$i];
echo "<option value='$country'>$country</option>";
}
?>
</select>

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM