PHP数组和HTML表单下拉列表

Ste*_*emp 3 html php forms arrays

我有一个名为$ categories的简单PHP数组,如下所示:

Array
(
[Closed] => P1000
[Open] => P1001
[Pending] => P1002
[In Progress] => P1003
[Requires Approval] => P1004
)
Run Code Online (Sandbox Code Playgroud)

我有一个简单的HTML表单,其中包含一个字段的下拉列表,我希望将该数组用于选项,但我只希望它显示文本(例如,已关闭,打开,待处理,正在进行和需要Approval)作为下拉列表中的选项,但存储该选项的关联键(例如P1000,P1001等),然后在提交表单时将其作为POST值发送.

到目前为止,表单字段的HTML是:

<select name="category_id">
<option value=""></option>
<?php foreach($categories as $category) {$category = htmlspecialchars($category);?>
<option value="<?php echo $category; ?>"><?php echo $category; ?></option>
<?php
}
?>
</select>
Run Code Online (Sandbox Code Playgroud)

我可以让它显示文本或ID,但不显示文本并存储ID.希望这很简单,有人可以指出我正确的方向.

非常感谢,史蒂夫

Rob*_*bik 5

你已经忘记了$ value标签.您将类别名称粘贴两次,而不是值.你应该这样做:

<select name="category_id">
<option value=""></option>
<?php 
    #                             !vCHANGEv!
    foreach($categories as $category => $value) 
    {
       $category = htmlspecialchars($category); 
       echo '<option value="'. $value .'">'. $category .'</option>';
    }
?>
</select>
Run Code Online (Sandbox Code Playgroud)