从表单上的PHP数组中获取值

时间:2013-01-22 16:31:27

标签: php arrays forms

我的表单工作正常,但在我的结果电子邮件中,我得到了用户选择的数组而不是值(例如Glove:3 vs. Glove:Cherry)。我怎么能改变这个?

这是我用于表单的php:

$unpwdgloves=array(
'Bubble Gum',
'Cherry',
'Green Apple', 
'Vanilla Orange',
'Grape', 
'Mint', 
 );

这是我的表格:

<select name="glove-color">
<option value="">-----------------</option>
<?php
foreach($unpwdgloves as $key => $value):
echo '<option value="'.$key.'">'.$value.'</option>';
endforeach;
?>
</select>      

3 个答案:

答案 0 :(得分:3)

替换

echo '<option value="'.$key.'">'.$value.'</option>';

echo '<option>'.$value.'</option>';

答案 1 :(得分:3)

您接收选择的位置,因为默认情况下,数组的键是0-&gt; n。在你的情况下:

$unpwdgloves=array(
[0] => 'Bubble Gum',
[1] => 'Cherry',
[2] => 'Green Apple', 
[3] => 'Vanilla Orange',
[4] => 'Grape', 
[5] => 'Mint', 
 );

所以您的选择将如下所示:

<select name="glove-color">
     <option value="0">Bubble Gum</option>
     <option value="1">Cherry</option>
     [...]
</select>

因此POST中传递的值将是&#34;值&#34;中的值。属性。如果您没有指定它的值属性,默认情况下,发送到服务器的值是选项标记<option>VALUE</option>内的文本。

您可以将代码更改为

echo '<option value="'.$value.'">'.$value.'</option>';
//<option value="Bubble Gum">Bubble Gum</option>

OR

echo '<option>'.$value.'</option>';
//<option>Bubble Gum</option>

答案 2 :(得分:1)

只需进行以下更改,因为key代表您在代码中使用的数组的索引。

<?php
foreach($unpwdgloves as $value):
echo '<option value="'.$value.'">'.$value.'</option>';
endforeach;
?>