2015-01-27 24 views
5

Kullanıcının, Dr, Mr, Ms, Mdm'yi seçtiğinden nasıl emin olabilirim ve selamlama boş olarak verilirse formu gönderdiklerinde set_rules için bir hata iletisi döndürür().Codeigniter: dropdown validation set_rules

Kod: HTML

echo "<p>Salutation: "; 
    $salutationOptions = array(
        '' => '', 
        'Dr' => 'Dr', 
        'Mr' => 'Mr', 
        'Ms' => 'Ms', 
        'Mdm' => 'Mdm', 
       ); 
    echo form_dropdown('salutation', $salutationOptions, ''); 
    echo "</p>"; 
+0

olası yinelenen (http://stackoverflow.com/questions/2442255/validating-form-dropdown-in-codeigniter) –

cevap

4

, bu kullanarak bir istemci tarafı doğrulama yapabilir , açılır listeden seçmeleri gerektiğini söyleyen bir hata verecektir.

$this->form_validation->set_rules('salutation', 'Salutation', 'required') 
if($this->form_validation->run()){ 
    /*user has selected. use the data now*/ 
}else{ 
    /*user has not sleected data, throw error back*/ 
} 
+0

Teşekkür ederim işe yaradı! :) – Outliers

+0

Sevindim yah yardım ettim! – Adr

0

kullanın required veya

görünümü kısmen bu

$this->form_validation->set_rules("Salutation","Salutation","required"); 

I hope this might help you 

https://ellislab.com/codeigniter/user-guide/libraries/form_validation.html#validationrules

+0

cevap için teşekkür ederiz ancak bu beni gerektirir Dr, Mr, Ms ve Mdm'nin tüm seçeneklerine sahip olmak gerekir, ama ihtiyacım olan şey, Dr, Mr, Ms veya Mdm seçeneklerinden en az birini seçebilmeleridir? – Outliers

+0

Seçim etiketi adınız nedir? eğer selamlama ise Takip etmeyi sev, $ this-> form_validation-> set_rules ("Selamlama", "Selamlama", "gerekli"); şimdi bu zorunlu bir alan, yani kullanıcı aralarında herhangi birini seçmek zorunda – Thamaraiselvam

+0

Evet, ancak benim yukarıda gördüğüm kodumdan görebildiğimiz kadarıyla, Dr, Mr, Ms veya Mdm değerini değiştirmelerini istiyorum. ve boş bırakmayın "", her şey daha net mi? :) – Outliers

0

örnek gibi yapın:

Kontrolör kısmen
$options = array('0' => 'SELECT SHIRT', '1' => 'Small Shirt', '1' => 
'Medium Shirt', '2' => 'Large Shirt', '3' => 'Extra Large Shirt',); 
echo form_open('welcome/index'); 
echo form_error('field name to display error'); 
echo form_dropdown('field name', $options); 
echo form_submit('submit', 'submit'); 
echo form_close(); 

:

echo "<p>Salutation: "; 
$salutationOptions = array(
        '' => '', 
        'Dr' => 'Dr', 
        'Mr' => 'Mr', 
        'Ms' => 'Ms', 
        'Mdm' => 'Mdm', 
       ); 
    echo form_dropdown('salutation', $salutationOptions, '', 'required="required"'); 
    echo "</p>"; 

kullanıcı açılan formu seçmeden göndermek çalıştığında:

görünüm dosyasında
$this->load->helper('form_validation'); 
$this->form_validation->set_rules('field name', 'name have to display in the error message', 'required'); 
if ($this->form_validation->run() == false) { 
$this->load->view('your page name'); }else{ 
$this->load->view('another page');} 
+0

Yardımlarınız için çok teşekkür ederim! Adr çözümünü kullanarak çalışmayı başardım. :) – Outliers

0

Eğer foreach ile gider Daha İyi() döngü: Eğer sunucu tarafında bunu istiyorsanız

, böyle bir şey yapabilirsiniz. Karşılaştığım yol budur.

<?php foreach($classes as $class) { ?> 
    <option value="<?php echo $class->classesID; ?>" <?php echo set_select('class', $class->classesID); ?>> 
     <?php echo $class->classes; ?> 
    </option> 
<?php } ?> 
[CodeIgniter'daki formu açılan doğrulanıyor] arasında