2012-06-30 25 views
5

'da form doğrulama hatalarının nasıl özelleştirileceği CodeIgniter içinde, form doğrulama mesajlarını özelleştirebilmem için düzenleyebileceğim bir dosya var mı?CodeIgniter

enter image description here

Sadece daha az yer tüketmek madde işaretli liste halinde yerleştirmek istiyorum.

<div class="alert <?php echo $alert['alert_type']; ?> min-form"> 
     <button type="button" class="close" data-dismiss="alert">x</button> 
     <h4><?php echo $alert['main_message']; ?></h4> 
     <?php echo $alert['sub_message']; ?> 
</div> 

Temelde $alert['sub_message'] sadece bir formdan doğrulama hatalarını verir CodeIgniter validation_errors() işlevinden verilerini elde ettiğini:

İşte çıkışa hata iletileri kullanıyorum kodu.

+0

değil zaten, ben bir istemci tarafı öneririm Doğrulama katmanı da bu yüzden CodeIgniter tabakası sadece bir şekilde formu teslim edebilecek durumdalar. –

+0

Ayrıca, CI belgelerine de başvurabilirim: [Geri Arama: Kendi Doğrulama İşlevleri] (http://codeigniter.com/user_guide/libraries/form_validation.html#callbacks). –

+0

@JaredFarrish Teşekkürler liveValidation kullanarak istemci tarafında doğrulama var http://livevalidation.com/ –

cevap

8

Sen maksimum kontrol için form_validation sınıfını uzatabilirsiniz application/libraries/MY_form_validation.php yaratarak ekstra doğrulama kurallarını eklemek - ekte verdiğimiz aşağıda bir örnek.

Sistem kitaplıklarını doğrudan düzenlemek; CI daha iyi seçenekler sağlar (geçersiz kılma/özelleştirme, MY_ sınıfları, libraries, hooks, vb.). Bu, CI sürümlerini & kolayca yükseltmenin yararını sağlar, uygulamanızı taşınabilir çerçeveden yalıtılmış taşınabilir/özel kod tutar.

<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); 

/** 
* CodeIgniter Form Validation Extension 
*/ 
class MY_Form_validation extends CI_Form_validation { 

    /** 
    * MY_Form_validation::valid_url 
    * @abstract Ensures a string is a valid URL 
    */ 
    function valid_url($url) { 
     if(preg_match("/^http(|s):\/{2}(.*)\.([a-z]){2,}(|\/)(.*)$/i", $url)) { 
      if(filter_var($url, FILTER_VALIDATE_URL)) return TRUE; 
     } 
     $this->CI->form_validation->set_message('valid_url', 'The %s must be a valid URL.'); 
     return FALSE; 
    } 

    /** 
    * MY_Form_validation::alpha_extra() 
    * @abstract Alpha-numeric with periods, underscores, spaces and dashes 
    */ 
    function alpha_extra($str) { 
     $this->CI->form_validation->set_message('alpha_extra', 'The %s may only contain alpha-numeric characters, spaces, periods, underscores & dashes.'); 
     return (! preg_match("/^([\.\s-a-z0-9_-])+$/i", $str)) ? FALSE : TRUE; 
    } 

    /** 
    * MY_Form_validation::numeric_comma() 
    * @abstract Numeric and commas characters 
    */ 
    function numeric_comma($str) { 
     $this->CI->form_validation->set_message('numeric_comma', 'The %s may only contain numeric & comma characters.'); 
     return (! preg_match("/^(\d+,)*\d+$/", $str)) ? FALSE : TRUE; 
    } 

    /** 
    * MY_Form_validation::matches_pattern() 
    * @abstract Ensures a string matches a basic pattern 
    */ 
    function matches_pattern($str, $pattern) { 
     if (preg_match('/^' . $pattern . '$/', $str)) return TRUE; 
     $this->CI->form_validation->set_message('matches_pattern', 'The %s field does not match the required pattern.'); 
     return FALSE; 
    } 

} 

/* End of file MY_form_validation.php */ 
/* Location: ./{APPLICATION}/libraries/MY_form_validation.php */ 
0

sistemine bir göz atın/dil/ingilizce/form_validation_lang.php

senin de düzenleyebilirsiniz inan veya uygulamaya kopyalamak/dil/ingilizce/form_validation_lang.php

+0

Genişletmek doğrudur, ancak '' system/'no-no'dur;) – sekati

+0

Aynı dosyanın bir kopyasını' application/language/english/form_validation_lang.php' (Applicatoin's Language folder) olarak kullanabilir ve herhangi bir kişiselleştirme yapabiliriz. istemek – masterFly

-8

yılında

ASPxClientEdit.ValidateGroup(null); 

veya

: javascript kullanarak sayfa içinde DevExpress denetimleri doğrulamak amacıyla, aşağıdaki kodu kullanabilirsiniz
ASPxClientEdit.ValidateGroup('validationgroup'); 
2

Hataları ayrı ayrı görüntülemek için <?php echo form_error('field name', '<div class="error">', '</div>'); ?> 'u kullanabilirsiniz.

Documentation

2

Sen CodeIgniter'ın set_error_delimiters işlevini kullanarak <li> için <div> gelen sınırlayıcıları değiştirebilirsiniz:

$this->form_validation->set_error_delimiters('<li>', '</li>'); 

Bunu yapmalısınız derhal Form Doğrulama sınıfını yükledikten sonra.

Bu validation_errors()veform_error('field_name') görüntülenme şeklini değiştirecek.Yani şöyle ul veya ol eklemek gerekir:

echo '<ul>' . validation_errors() . '</ul>'; 
1

yukarıdaki cevapları aynı, sen bootstrap ile istediğiniz gibi eğer:

<ul> 
<?php echo validation_errors('<li><span class="label label-danger">', '</span></li>'); ?> 
</ul>