繁体   English   中英

PHP数组和HTML表单下拉列表

[英]PHP Array and HTML Form Drop Down List

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

Array
(
[Closed] => P1000
[Open] => P1001
[Pending] => P1002
[In Progress] => P1003
[Requires Approval] => P1004
)

我有一个简单的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>

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

非常感谢,史蒂夫

你已经忘记了$ 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>

由于您必须包含键和值,因此两个键都是显示POST的文本和值

<?php foreach($categories as $key => $category) {
   $category = htmlspecialchars($category);?>
   <option value="<?php echo $category; ?>"><?php echo $key; ?></option>
<?php
}
?>

你没有在foreach循环中包含键

foreach($categories as $id=>$category){
    $category = htmlspecialchars($category);
    echo "<option value="{$id}">{$category}</option>";
}
foreach($categories as $category => $category_id)

是你在找什么。

<select name="category_id">
<option value=""></option>
<?php
$keys = array_keys($categories);
for($i=0; $i<count($categories); $i++)
{?>
    <option value="<?php echo $keys[$i]; ?>"><?php echo $categories[$i]; ?></option>
<?php
}
?>
</select>

假设$ categories是您在上面显示的数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM