这是我正在尝试改进的文件上传脚本。我根本无法选择一种方法并且遇到了各种问题。
当文件被上传时,它被赋予一个访问类别,这是为了确定谁可以在以后看到该文件。我在这个字段中使用了一个枚举,但现在它是一个简单的 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 );
}