使用數組填充一個選擇框。如果我有一個選擇框汽車在PHP
<select><option>...<option></select>
,我使用PHP有值的數組1-12
,我將如何自動填充該使用該數組選擇框?
使用數組填充一個選擇框。如果我有一個選擇框汽車在PHP
<select><option>...<option></select>
,我使用PHP有值的數組1-12
,我將如何自動填充該使用該數組選擇框?
假設數組的樣子:
$array = array(
1=>"My first option",
2=> "My second option"
);
<select>
<?php foreach($array as $key => $value) { ?>
<option value="<?php echo $key ?>"><?php echo $value ?></option>
<?php }?>
</select>
沒有單一的辦法做到這一點,但你可能會做這樣的事情:
<select>
<?=getMyOptions()?>
</select>
其中getMyOptions()是一個函數調用來檢索選項(例如來自數據庫)並且以格式打印每一個
<option value="x">XXX</option>
就個人而言,我te nd使用我稱爲printAsOptions()的通用函數。該函數接受一組對象。它期望數組中的對象有一個名爲「id」的字段和一個名爲「name」的字段。它遍歷數組併爲每個項目打印一個選項。這樣,您可以創建一個函數來獲取對象數組(例如,從數據庫中),而不會在表示邏輯中混合。表示邏輯由通用printAsOptions()函數處理。
你可以做如下自己的簡單功能:
function generateSelectFromArray($array){
// echo your opening Select
echo "<select>";
// Use simple foreach to generate the options
foreach($array as $key => $value) {
echo "<option value=' $key '> $value </option>";
}
echo "</select>";
}
用法:
$array = array(
1=>"My first option",
2=> "My second option"
);
generateSelectFromArray($array);