繁体   English   中英

在表单结果上从PHP数组获取值

[英]Getting values from a PHP array on form results

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

更换

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

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

您可以接收选择的位置,因为默认情况下,数组的键是从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属性,则默认情况下,发送到服务器的值是选项标签<option>VALUE</option>的文本。

您可以将代码更改为

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

要么

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

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

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

暂无
暂无

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

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