【PHP】postで連想配列のキーを送信したい
PHP初心者です。
(実は似たような質問を以前yahoo知恵袋さんで投げた者です)
ファイルのアップロードフォームを作っています。
まず、セレクトボックスを作り、セレクトボックスで選んだ値によって、
アップロード先を分けたいと思っています。
セレクトボックスで「理科」を選んでアップロードしたファイルは
フォルダ「001」に、セレクトボックスで「数学」を選んでアップロードした
ファイルはフォルダ「002」に入る、いう具合です。
セレクトボックスを連想配列を使って作り、
フォルダ分けは連想配列のキーの値を使うことによって解決しようとして
下のように作ってみたのですがうまくいきません。
どうすればよいでしょうか?
よろしくお願いします。
**アップロードフォーム**
<select name="subjects" id="subjects">
<?php
$subjects = array('001'=>'理科','002'=>'数学','003'=>'英語'=>');
foreach ($subjects as $subject) {
print('<option value="'.$subject.'">'.$subject.'</option>');
}
?>
</select>
<form action="./upload.php" method="post" enctype="multipart/form-data">
<input type="file" name="upfile" size="30px"/><br/>
<input type="file" name="upfile" size="30px"/><br/>
<input type="file" name="upfile" size="30px"/><br/>
<button type="submit"> 送信</button>
</form>
**受信側**
<?php
$subjects = array('001'=>'理科','002'=>'数学','003'=>'英語'=>');
$keyNum = array_search($_POST['subjects'], $subjects);
if( isset( $_FILES["upfile"] ) )
{
foreach( $_FILES["upfile"]["error"] as $key => $error )
{
if( $error == UPLOAD_ERR_OK )
{
$tmp_name = $_FILES["upfile"]["tmp_name"][ $key ];
$name = $_FILES["upfile"]["name"][ $key ];
if (move_uploaded_file($tmp_name, "$keyNum/" . $name)); {
echo $_FILES["upfile"]["name"] . "アップロード完了";
}
}
}
}
?>