我的表单工作正常,但在我的结果电子邮件中,我得到了用户选择的数组而不是值(例如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>
答案 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;
?>