2016-08-05 11 views
0

私のcodeigniter検証エラーが表示されない場合があります。 )(私のコードはCodeigniterの検証エラーが表示されない

public function addProduct(){ 
    $this->load->view('header', $this->data); 
    $this->load->view('product/addProduct'); 
    $this->load->view('footer'); 

     $this->form_validation->set_rules('productName', 'Product Name', 'required|trim'); 
     $this->form_validation->set_rules('productPrice', 'Product Price', 'required|trim'); 
     if (!$this->form_validation->run() == FALSE) 
     { 
      // some stuff on validation success 
     } 
     else{ 
      $this->load->view('product/addProduct'); 
     } 

} 

であり、私は エコーvalidation_errorsを追加しました。私の見解では、フォームの動作はproduct/addProductです。

+0

あなたの関数で検証エラーが発生しました –

+0

@Nikhil Vaghla別の関数で検証エラーを渡す必要がありますか? –

+0

最初の$ this-> load-> view( 'product/addProduct')を削除します。 –

答えて

0

<?php echo validation_errors('<div class="error">', '</div>'); ?> 

<!-- lower case for the controller name on form open --> 

<?php echo form_open_multipart('product/addProduct');?> 

<h5>productName</h5> 
<input type="text" name="productName" value="<?php echo set_value('productName'); ?>" size="50" /> 

<h5>productPrice</h5> 
<input type="text" name="productPrice" value="<?php echo set_value('productPrice'); ?>" size="50" /> 

<div><input type="submit" value="Submit" /></div> 

<?php echo form_close();?> 

コントローラ

は、ファイル名とクラス名のみが上位ところ、最初の文字以下で、このようなものであることを確認してくださいケース

Guide

ファイル名:Product.php

<?php 

class Product extends CI_Controller { 

public function __construct() { 
    parent::__construct(); 
    $this->load->library('form_validation'); 
    $this->load->helper('form'); 
    $this->load->helper('url'); 
} 

public function addProduct(){ 

    // You can get data from here also 

    $this->data['some'] = 'Blah'; 

    $this->form_validation->set_rules('productName', 'Product Name', 'required|trim'); 
    $this->form_validation->set_rules('productPrice', 'Product Price', 'required|trim'); 

    // remove your ! 

    if ($this->form_validation->run() == FALSE){ 

     // You can just display view in this area you do not have to load it multiple times 

     $this->load->view('header', $this->data); 
     $this->load->view('product/addProduct'); 
     $this->load->view('footer'); 

    } else { 

     // some stuff on validation success 
    } 

} 

} 

はまた、あなたがconfig.phpの中にあなたのベースURLを設定したチェックがCI3バージョンで必要になりました。

1

これはあなたの仕事です。

form_error()関数はフォームエラーを返します。ビューの例で

 $post_fields = $this->input->post(); 
     $data['msg'] = '<ul>'; 
     foreach ($post_fields as $k => $v) { 
      if (form_error($k)) 
       $data['msg'] .= "<li>" . strip_tags(form_error($k)) . "</li>\n"; 
     } 
     $data['msg'].='</ul>'; 
     $this->load->view('product/addProduct',$data); 

OR

echo validation_errors();//this function also return form error. 
+0

ありがとうございます。私のコード内の欠陥を説明してください。 –

+1

コードでは、else部分にエラーを渡すことはできません。 –

+0

エコー検証エラー()を使用しました。私の意見で –

関連する問題