2009-11-05 73 views
0

我使用的表單驗證庫,有這樣的事情在視圖CodeIgniter的形式驗證和

<p> 
     <label for="NAME">Name <span class="required">*</span></label> 
     <?php echo form_error('NAME'); ?> 
     <br /><input id="NAME" type="text" name="NAME" class="" value="<?php echo set_value('NAME'); ?>" /> 
</p> 

我想一個類添加到輸入是依賴於形式的錯誤 所以我可以有這樣的事情

<input id="NAME" type="text" name="NAME" class="<?php echo $error;?>" value="<?php echo set_value('NAME'); ?>" 

我意識到,它必須是有點複雜,但我想這個這個,而無需創建每個字段的自定義規則的回調。

感謝 〜丹尼爾

回答

0

如果你在你的控制器所有驗證字段中使用設置:

$this->validation->set_fields() 

您將有機會獲得任何可能的錯誤信息,您可以通過以下方式使用:

<input id="NAME" name="NAME" value="<?php echo $this->validation->NAME; ?>" <?php echo (!empty($this->validation->NAME_error)) ? 'class="error"' : ''; ?> /> 

http://codeigniter.com/user_guide/libraries/validation.html

正如在評論中指出的,上面的代碼引用了舊的驗證庫。 執行此任務的新1.7方法是:

<input id="NAME" name="NAME" value="<?php echo set_value('NAME'); ?>" <?php echo (!empty(form_error('NAME')) ? 'class="error"' : ''; ?> /> 
+0

這真的是錯誤的教老的驗證類。你應該在這裏使用新的Form Validation類:http://codeigniter.com/user_guide/libraries/form_validation.html – 2009-11-10 23:03:14

+0

我也爲1.7添加了一個解決方案。 – 2009-11-10 23:08:58

0

我才意識到,有一種方法與錯誤做到這一點定界符

$this->form_validation->set_error_delimiters('<br /><span class="error">', '</span>'); 

我這使得它更容易。

但是出於好奇,有沒有辦法在輸入中用class來做到這一點?

+0

你所輸入的意思做類? – 2009-11-10 23:04:11

+0

理想情況下...我希望能夠推入另一個變量。現在,您可以將消息設置爲在回調中顯示。我想設置一個錯誤類來分配CSS。這將允許我根據錯誤對其進行不同的設計。 – Daniel 2009-11-11 02:52:49