PHP foreach循环使用数组中的值填充下拉列表
我使用以下代码创建了一个数组的数组。我试图让它循环并填充一个下拉列表PHP foreach循环使用数组中的值填充下拉列表,php,arrays,loops,Php,Arrays,Loops,我使用以下代码创建了一个数组的数组。我试图让它循环并填充一个下拉列表 $names = $db->fetchAll("select `name` from `classes`"); 这是存储在$names变量中的内容 数组([0]=>Array([name]=>Web设计)[1]=>Array([name]=> 艺术史)[2]=>阵列([name]=>健身房)[3]=>阵列([name]=> 英语)[4]=>数组([name]=>生物学)[5]=>数组([name]=> 3D动画)[6]
$names = $db->fetchAll("select `name` from `classes`");
这是存储在$names变量中的内容
数组([0]=>Array([name]=>Web设计)[1]=>Array([name]=>
艺术史)[2]=>阵列([name]=>健身房)[3]=>阵列([name]=>
英语)[4]=>数组([name]=>生物学)[5]=>数组([name]=>
3D动画)[6]=>阵列([name]=>技术光盘)[7]=>阵列(
[name]=>数学[8]=>数组([name]=>舞蹈)[9]=>数组(
[name]=>视频制作[10]=>阵列([name]=>家庭Ec)[11]
=>阵列([name]=>政府)[12]=>阵列([name]=>物理))
我创建了这个下拉列表,它可以工作,但是它是为数组中的每个值手工编码的。我想修改它,使它“循环”数组中的所有结果,以创建下拉列表
<label for="per1"></label>
<select name="per1" id="per1">
<option selected="selected">Choose one</option>
<option value="<?php echo $names[0]['name'];?>"><?php echo $names[0]['name'];?></option>
<option value="<?php echo $names[1]['name'];?>"><?php echo $names[1]['name'];?></option>
<option value="<?php echo $names[2]['name'];?>"><?php echo $names[2]['name'];?></option>
<option value="<?php echo $names[3]['name'];?>"><?php echo $names[3]['name'];?></option>
<option value="<?php echo $names[4]['name'];?>"><?php echo $names[4]['name'];?></option>
<option value="<?php echo $names[5]['name'];?>"><?php echo $names[5]['name'];?></option>
<option value="<?php echo $names[6]['name'];?>"><?php echo $names[6]['name'];?></option>
<option value="<?php echo $names[7]['name'];?>"><?php echo $names[7]['name'];?></option>
<option value="<?php echo $names[8]['name'];?>"><?php echo $names[8]['name'];?></option>
<option value="<?php echo $names[9]['name'];?>"><?php echo $names[9]['name'];?></option>
<option value="<?php echo $names[10]['name'];?>"><?php echo $names[10]['name'];?></option>
<option value="<?php echo $names[11]['name'];?>"><?php echo $names[11]['name'];?></option>
<option value="<?php echo $names[12]['name'];?>"><?php echo $names[12]['name'];?></option>
</select>
选一个
有人能帮忙吗?我想这就足够了
foreach($names as $key =>$value)
{?>
<option value="<?=$value['name']?>"><?=$value['name']?></option>
<?php }
foreach($key=>$value)
{?>
此解决方案适用于当前的PHP版本。
使用foreach的简单示例:
<select name="per1" id="per1">
<option selected="selected">Choose one</option>
<?php
foreach($names as $name) { ?>
<option value="<?= $name['name'] ?>"><?= $name['name'] ?></option>
<?php
} ?>
</select>
<select name="per1" id="per1">
<option selected="selected">Choose one</option>
<?php
foreach($names as $name) { ?>
<option value="<?php echo $name['name'] ?>"><?php echo $name['name'] ?></option>
<?php
} ?>
</select>
选一个
此解决方案适用于较旧的PHP版本。
使用foreach的简单示例:
<select name="per1" id="per1">
<option selected="selected">Choose one</option>
<?php
foreach($names as $name) { ?>
<option value="<?= $name['name'] ?>"><?= $name['name'] ?></option>
<?php
} ?>
</select>
<select name="per1" id="per1">
<option selected="selected">Choose one</option>
<?php
foreach($names as $name) { ?>
<option value="<?php echo $name['name'] ?>"><?php echo $name['name'] ?></option>
<?php
} ?>
</select>
选一个
针对每个循环进行编码,以避免这些过多的编码
<?php
foreach($names as $nameIndex=>$nameVal){ ?>
<option value=$nameVal['name']?>"><?=$nameVal['name']?> </option>
<?php } ?>
">
这是一种在下拉html表单或任何位置使用php数组以下拉值形式显示php foreach值的简便方法
<select name="city" required class="form-control">
<option value="">Select City</option>
<?php foreach($pkcities as $rows){ $city = $rows['city']; ?>
<option value="<?=$city;?>" ><?=$city;?></option>
<?php } ?>
</select>
选择城市
由于不需要使用与选项文本相同的值编写选项“value
属性,因此可以使用内爆而不是经典循环来完成此操作
<?php $options = array_column($names, 'name'); ?>
<select name="per1" id="per1">
<option value="">Choose one</option>
<?php if ($options) {
echo '<option>' . implode('</option><option>', $options) . '</option>';
} ?>
</select>
选一个
这个问题肯定是一个巨大的重复,但我还没有花时间搜索这个任务在堆栈溢出上的最早发布。它创建了一个列表,但选项和值都是空的。有什么想法吗?$names是数组数组的数组。有什么东西会因为这个而有机会吗?$names是数组的数组,所以当你foreach它时,每个“name”本身就是一个数组,您需要的数组索引是['name']。您没有指定php版本,但如果您有一个php版本,那么将选项的文本镜像为其值
属性绝对没有任何好处--您可以安全地省略值
声明。表单提交和所有js进程仍将工作相同。如果没有其他选项,则将选择第一个选项选中。@mickmackusa这是真的,但虽然没有“好处”,但它们并不等同。我的答案旨在输出相同的HTML。例如,如果它们有document.querySelector(“#pet select option[value=Physics]”).
如果未在value属性中设置该元素,它将找不到该元素。将选项的文本镜像为其值
属性绝对没有好处——您可以安全地省略值
声明。表单提交和所有js过程仍将工作相同。@Mickusa绝对正确,than Mackusak将选项的文本镜像为其值
属性绝对没有好处——您可以安全地省略值
声明。表单提交和所有js流程仍将工作相同。将选项的文本镜像为其值
属性绝对没有好处——您可以安全地省略evalue
declaration。表单提交和所有js流程仍将保持不变。