2012-02-08 1 views
0

J'utilise la validation de la forme de CodeIgniter, il fonctionne très bien, mais quand, la validation du formulaire échoue, il ne présente pas les erreurs de validation, en utilisant <?php echo validation_errors();?> J'utilisevalidation de formulaire dans CodeIgniter

function insertProduct(){ 
     $this->load->library('form_validation'); 
     $this->form_validation->set_rules('pname','ProductName','trimirequired'); 
     if($this->form_validation->run()){ 
      $this->addProduct(); 
     } 
     else{ 
      $this->load->model('inventory/stock'); 
     } 

S'il vous plaît aider moi, je suis nouveau à codeIgniter

+1

Je ne vois pas où vous utilisez 'validation_errors()' ...? Vous avez cependant une faute de frappe: 'trimirequired' devrait être' trim | required'. –

+0

J'utilise 'validation_errors()' dans ma vue, code long, ne peut pas être donné ici, et quand j'utilise 'trim | required', cela ne fonctionne pas –

+1

Vous devriez charger la vue dans l'autre {}, pourquoi est-ce que vous chargez le modèle là? – stef

Répondre

0

À votre avis, vous devriez avoir quelque chose comme (cet exemple montre des erreurs individuellement);

<?php echo form_error('p_name'); ?> 
<label for="p_name">Product Name</label> 
<input type="text" id="p_name" name="p_name" value="<?php echo set_value('p_name'); ?>" /> 
0

Vous devez indiquer à la méthode de votre contrôleur de rendre une vue sur le succès/l'échec de la validation de formulaire.

Si vous modifiez votre méthode insertProduct à ce qui suit, cela devrait «résoudre» votre problème.

function insertProduct(){ 
    $this->load->library('form_validation'); 
    $this->form_validation->set_rules('pname','ProductName','trimirequired'); 
    if($this->form_validation->run()){ 
     $this->addProduct(); 
     $this->load->view('{name_of_your_view}'); 
    } else{ 
     $this->load->model('inventory/stock'); 
     $this->load->view('{name_of_your_view}'); 
    } 
} 

Où name_of_your_view 'est la vue que vous avez placé les validation_errors() code dans.

0

Cet exemple des pages de tutoriel CodeIgniter explique comment valider les données soumises pour afficher les erreurs de validation à l'en-tête de la forme comme on pouvait s'y attendre:

http://codeigniter.com/user_guide/tutorial/create_news_items.html

le code exemple pour la fonction de création ressemble à ceci:Comme d'autres l'ont dit, cependant, vous devez ajouter une vue pour gérer le succès et les renvoyer au formulaire pour afficher les erreurs en cas d'échec.

0

Nous pouvons changer la ligne contenant le code suivant:

$this->form_validation->set_rules('pname','ProductName','trimirequired'); 

à:

$this->form_validation->set_rules('pname','ProductName','trim|required'); 
if($this->form_validation->run($this) == false) 
{ 
    $this->addProduct(); 
} 
Questions connexes