これは、私が改善しようとしているファイル アップロード スクリプト用です。私は単に 1 つの方法に落ち着くことができず、さまざまな問題に遭遇しました。
ファイルがアップロードされると、アクセス カテゴリが与えられます。これは、後日ファイルを表示できるユーザーを決定するためのものです。このフィールドに列挙型を使用していましたが、現在は単純な varchar です。
オプションのリストは、select distinct ステートメントを使用して、フォームのドロップダウン ボックスに表示されます。
<div class="uploadFormE">
<label>Access Category: </label>
<select name="accessCategory[]">
<?php
foreach($accessCategories as $eachCat){
$val = $eachCat['accessCategory'];
echo "<option value=" .$val.">" .$val. "</option>";
}
?>
</select>
</div>
OR TYPE NEW ONE
<div class="uploadFormE">
<label>New Access Category: </label>
<input type="text" name="accessCategory[]"> </input>
</div>
問題は「または新しいものを入力する」部分です。(ドロップダウンのデフォルト設定では、入力フィールドに入力できる内容が上書きされます)
アップローダーに新しいカテゴリを追加する機会を提供したいと思います。
回避策はありますか? よりクリーンでより良い方法があれば、私はすべて耳を傾けます。「カテゴリを追加」するために別の関数を使用するつもりでしたが、それは不可能なフィールドです。また、新しいテーブルを正当化するのに十分な値がなく、更新時に列挙型を機能させることができませんでした。
ありがとう。
編集:
<div class="uploadFormE">
<label>Access Category: </label>
<select name="accessCategory[]">
<?php
foreach($accessCategories as $eachCat){
$val = $eachCat['accessCategory'];
echo "<option value=" .$val.">" .$val. "</option>";
}
?>
<option value="newCat">New Category?</option>
</select>
</div>
<div class="uploadFormE">
<label>New Access Category: </label>
<input type="text" class="GAH" name="newCategory"> </input>
</div>
$comments = htmlentities( trim( $_POST['comments'][$i] ) );
if($_POST['accessCategory[]'] == "newCat"){
$accessCat = htmlentities( trim ($_POST['newCategory'][$i]));
}else{
$accessCat = htmlentities( trim ($_POST['accessCategory'][$i]));
}
//doc, pdf, etc etc
$category = htmlentities( trim( $_POST['category'][$i] ) );
if($file['name'] != ""){
$training->uploadDocument( $fileName, $category, $comments, $accessCat );
}