2015-01-27 17 views
5

posso sapere come faccio a garantire che l'utente abbia selezionato, Dr, Mr, Ms, Mdm e quando inviano il modulo se il saluto è dato come vuoto restituirà un messaggio di errore per il set_rules().Codeigniter: dropdown validation set_rules

Codice:

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

possibile duplicato del [Convalida modulo discesa in CodeIgniter] (http://stackoverflow.com/questions/2442255/validating-form-dropdown-in-codeigniter) –

risposta

4

Nel file di vista, si può fare una convalida lato client utilizza questo:

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

Quando l'utente tenta di inviare senza scegliere formare la discesa , darà loro un errore dicendo che dovrebbero scegliere dal menu a discesa.

Se si desidera che sul lato server, è possibile fare qualcosa di simile:

$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

Grazie, ha funzionato! :) – Outliers

+0

Contento di averti aiutato! – Adr

0

Usa required in HTML, o

ti piace questo

$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

Grazie per la risposta però questo mi richiedono di avere tutte le opzioni Dr, Mr, Ms e Mdm, ma quello di cui ho bisogno è che scelgano almeno una delle opzioni che Dr, Mr, Ms o Mdm è possibile? – Outliers

+0

qual è il nome del tag di selezione? se è un saluto. fai come segue, $ this-> form_validation-> set_rules ("Salutation", "Salutation", "required"); ora questo è un campo obbligatorio quindi l'utente deve selezionare uno qualsiasi tra loro – Thamaraiselvam

+0

Sì, è un saluto, tuttavia, come possiamo vedere dal mio codice che ho messo sopra, vorrei che cambiassero il valore in Dr, Mr, Ms o Mdm e non lasciarlo vuoto a "", è tutto più chiaro? :) – Outliers

0

esempio in vista della parte:

$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(); 

in parte regolatore:

$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

Grazie mille per l'aiuto! Sono riuscito a farlo funzionare utilizzando la soluzione Adr. :) – Outliers

0

Meglio andreste con foreach() loop. Questo è il modo in cui mi sono imbattuto.

<?php foreach($classes as $class) { ?> 
    <option value="<?php echo $class->classesID; ?>" <?php echo set_select('class', $class->classesID); ?>> 
     <?php echo $class->classes; ?> 
    </option> 
<?php } ?>