2016-11-03 63 views
1

我想在Codeigniter的html表單上爲單選按鈕添加驗證。該表格預填充了來自數據庫的數據,包括已上傳文檔的列表(如果該項目沒有關聯的文檔,該字段可能爲空)。用戶可以上傳新文檔,將其添加到現有文檔或添加刪除當前文檔的新文檔。在單選按鈕上的表單驗證Codeigniter

所以我有一個包含組織文檔的名稱和文件上傳字段的新文本字段:

<label for="orgdocs">Documents</label> 
<input type="text" id="orgdocs" readonly="readonly" value="<?php echo $fetched_row['pdocs']; ?>" /> 
<input type="file" id="newdocs" name="newdocs[]" multiple="multiple" /> 

和單選按鈕:(忽略在西班牙名字不好的企圖)

<label for="mas"><b>Añada mas</b></label> 
<input type="radio" name="docsacion" style="margin-right: 0" <?php if (isset($docsacion) && $docsacion=="mas") echo "checked";?> value="mas" title="Add another document to existing docs"><br /> 
<label for="otra"><b>Borrar y añada otra</b></label> 
<input type="radio" name="docsacion" style="margin-right: 0" <?php if (isset($docsacion) && $docsacion=="otra") echo "checked";?> value="otra" title="Remove all current docs and add new"> 

我只是想添加驗證。如果選擇了新文檔(newdocs不爲空),則需要dosacion。 我曾嘗試:

if(isset($_FILES['newdocs']['name']) && (!empty($_FILES['newdocs']['name']))) 
{$this->form_validation->set_rules('docascion','Documentation upload', 'required');} 

但即使newdocs字段爲空並且從來就沒有知道爲什麼這給人的錯誤!?

+0

嘗試,如果(!$這個 - > upload-> do_upload( 'newdocs',FALSE)){//驗證} – hrishi

回答

0

試試這個

if(!empty($_FILES['newdocs']['name'])){ 
    $this->form_validation->set_rules('docascion','Documentation upload', 'required'); 
} 
+0

謝謝,但這樣做完全一樣的事情。 從邏輯上講,它應該工作(當然我也這麼認爲),但它不允許提交Newdocs字段爲空且沒有選擇docsacion? – RebeccaRol

+0

這裏是沒有什麼是強制文件字段是非空的。此代碼僅在選擇文件時爲您的「收音機」按鈕設置驗證。如果沒有文件選擇,則驗證跳過 –

+0

,但即使未選擇文件,驗證錯誤也會在提交時出現。 (即驗證不會被跳過) – RebeccaRol