[英]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.