2016-11-03 30 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フィールドが空の場合でも、エラーを与え、その理由は考えてI'veません!

+0

を試してみては、if(!ます$ this-> upload-> do_upload( 'newdocs'、FALSE)){//バリデーション} – hrishi

答えて

0

この

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

感謝をしようとするが、これはまったく同じことを行います。 論理的にはうまくいくはずですが(それはそうだと思いますが)、Newdocsフィールドを空にしてsubmissionを許可しておらず、docsacionを選択していませんか? – RebeccaRol

+0

強制的にファイルフィールドを空ではないものは何もありません。このコードは、ファイルが選択されたときに 'radio'ボタンの検証を設定するだけです。ファイルが選択されていない場合、検証は –

+0

をスキップしますが、ファイルが選択されていない場合でも、送信時に検証エラーが表示されます。 (つまり、検証はスキップされません) – RebeccaRol

関連する問題