0

フォームは正常に動作していますが、結果の電子メールでは、値の代わりにユーザーが選択した配列の番号が表示されます (例: 手袋: 3 と手袋: チェリー)。どうすればこれを変更できますか?

これは、フォームに使用している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

キーはコードで使用している配列のインデックスを表すため、次の変更を加えてください。

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