我在PHP中有一个名为$volume_unit_list
的数组,如下所示:
Array
(
[0] => Array
(
[id] => 5
[unit] => Microsecond
[created_at] => 1397479783
[updated_at] => 1397479783
)
[1] => Array
(
[id] => 7
[unit] => oz
[created_at] => 1397548900
[updated_at] => 1397672502
)
[2] => Array
(
[id] => 9
[unit] => ml
[created_at] => 1397641838
[updated_at] => 1397672480
)
[3] => Array
(
[id] => 10
[unit] => L
[created_at] => 1397672517
[updated_at] => 1397672517
)
[4] => Array
(
[id] => 12
[unit] => gms
[created_at] => 1398196412
[updated_at] => 1398196412
)
)
我想使用foreach($volume_unit_list as $key=>$value)
将上面数组中的所有元素添加到HTML选择控件中,但我无法做到这一点。在建议的选择控件中,默认情况下,所选选项文本应为"选择单位",其值应为"。对于所有其他数组元素,选项文本应该是上面数组中[unit]
键的值,选项值应该与上面数组中的[id]
键的值有关。有人能在这方面帮我吗。我尝试的不成功代码如下:
<?php
$rebate_no = $_POST['rebate_no'];
echo "<tr id='reb$rebate_no'>
<td><div class='btn-group'><select id='units_$rebate_no' name='units[$rebate_no]' class='form-control'><option value='' selected='selected'>Select Unit</option>foreach($volume_unit_list as $key=>$value){<option value='$value[id]'>$value[unit]</option>}</select></div></td>
</tr>";
?>
提前谢谢。
您应该使用字符串串联(但使用模板是最好的)
<?php
$str="<select id='unit' name='units[]' class='form-control'><option value=''>Select Unit</option>";
foreach($volume_unit_list as $key=>$value) {
$str .= "<option value='$key[id]'>$key[unit]</option>";
}
$str .="</select>";
?>
根据数组,您需要访问数组第二维度的索引,该维度为:
echo "<select id='unit' name='units' class='form-control'>";
echo "<option value="">Select value</option>";
foreach ($volume_unit_list as $key => $value) {
echo "<option value="".$value['id']."">".$value['unit']."</option>";
}
echo "</select>";
在foreach部分中,$value是内部数组,包含索引为"id"、"unit"、e.t.c.的值。
试试这个,有很多语法错误
echo "<select id='unit' name='units[]' class='form-control'>";
foreach($volume_unit_list as $key=>$value) {
echo "<option value='{$key['id']}'>${key['unit']}</option>";
}
echo "</select>";
以下是更正后的源代码。不知道你为什么需要这个表行和POST和rebate_no,但我想你知道为什么:)
$volume_unit_list = array( /* ... */);
$rebate_no = $_POST['rebate_no'];
// prepare options
$s = '';
foreach($volume_unit_list as $v) {
$s .= "<option value='{$v['id']}'>{$v['unit']}</option>";
}
// echo out
echo "
<tr id='reb$rebate_no'><td><div class='btn-group'>
<select id='units_$rebate_no' name='units[$rebate_no]' class='form-control'>
<option value='' selected='selected'>Select Unit</option>
$s
</select>
</div></td></tr>";