0

我的表单工作正常,但在我的结果电子邮件中,我得到了用户选择的数组编号而不是值(例如 Glove:3 与 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>      
4

3 回答 3

3

代替

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

echo '<option>'.$value.'</option>';
于 2013-01-22T16:32:35.760 回答
3

您收到选择的位置,因为默认情况下,数组的键是从 0->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 中传递的值将是“value”属性中的值。如果您不指定它的 value 属性,默认情况下发送到服务器的值是 option tag 内的文本<option>VALUE</option>

您可以将代码更改为

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

或者

echo '<option>'.$value.'</option>';
//<option>Bubble Gum</option>
于 2013-01-22T16:47:10.817 回答
1

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

<?php
foreach($unpwdgloves as $value):
echo '<option value="'.$value.'">'.$value.'</option>';
endforeach;
?>
于 2013-01-22T16:37:10.940 回答