简体   繁体   中英

how to show error message in codeigniter

I am new on codeigniter and creating form which is sending data to mail. Now I am working on form validation . I want if any one click on submit button without filling form data then error should be shown in the placeholder in text box. Here is my contact_us_view page in view

<?php 
        $form=array('class'=>'contact-form default-form','id'=>'myform');
        echo form_open('success_form',$form);
        ?>
        <div class="row">

          <div class="col-md-12">
            <div class="preamble col-md-12">
              <h3>Get in touch</h3>
            </div>
          </div>
          <div class="col-md-6">
            <?php
            $name=array('placeholder'=>'Name','name'=>'name');
            echo form_input($name);
            ?>
          </div>
          <div class="col-md-6">
            <?php
            $company=array('placeholder'=>'Company','name'=>'company');
            echo form_input($company);
            ?>
          </div>
          <div class="col-md-6">
            <?php
            $number=array('placeholder'=>'Phone Number','name'=>'number');
            echo form_input($number);
            ?>
          </div>
          <div class="col-md-6">
            <?php
            $email=array('placeholder'=>'Email','name'=>'email');
            echo form_input($email);
            ?>
          </div>
          <div class="col-md-6">
            <span class="arrival calendar">
            <?php
            $arrival=array('name'=>'arrival','placeholder'=>'Arrival','data-dateformat'=>'m/d/y');
            echo form_input($arrival);
            ?>
                <i class="fa fa-calendar"></i>
            </span>
          </div>
          <div class="col-md-6">
            <span class="departure calendar">
            <?php
            $departure=array('name'=>'departure','placeholder'=>'Departure','data-dateformat'=>'m/d/y');
            echo form_input($arrival);
            ?>
               <i class="fa fa-calendar"></i>
            </span>
          </div>
          <div class="col-md-12">

            <span class="select-box" title="hotel-type">
              <select name="person" data-placeholder="Number of People">
                <option value="1">1</option>
                <option value="2">2</option>
                <option value="3">3</option>
                <option value="4">4</option>
                <option value="5">5</option>
                <option value="6">6</option>
                <option value="7">7</option>
                <option value="8">8</option>
                <option value="9">9</option>
                <option value="10">10</option>
                <option value="10+">10+</option>
              </select>
            </span>
          </div>
          <div class="col-md-12">
            <textarea placeholder="How we can help you"></textarea>
          </div>
          <div class="col-lg-md text-center">
            <button class="btn btn-transparent-white">Send Message</button>
          </div>
        </div>
      <?php echo form_close();?>

here is my controller success_form in controller

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

class Success_form extends CI_Controller{

    public function __construct() {
        parent::__construct();
        $this->load->library(array('session', 'form_validation', 'email'));
    }

    public function index(){

        // Set Validation Rule

        $this->form_validation->set_rules('name','Name','trim|required|xss_clean|callback_alpha_space_only','required');
        $this->form_validation->set_rules('company','Company','trim|required|xss_clean|callback_alpha_space_only');
        $this->form_validation->set_rules('number','Mobile Number','required|regex_match[/^[0-9]{10}$/]');
        $this->form_validation->set_rules('email', 'Emaid ID', 'trim|required|valid_email');
        $this->form_validation->set_rules('arrival','Arrival','trim|required|xss_clean');
        $this->form_validation->set_rules('departure','Departure','trim|required|xss_clean');
        $this->form_validation->set_rules('person','Number of Person','trim|required|xss_clean|numeric');


    //Run Validation on Form Input

    if($this->form_validation->run()==FALSE){
     // Validation fails
        $this->load->view('contact_us_view');
    }
    else{
        echo "successfully";
    }
    }

}

without filling form if any one click on submit button then error should be shown in placeholder of form. please help me to find out the answer ..i try lot but didnt get solution ..please help

in your contact_us_view, before your <form> you need to add to display all errors

<?php echo validation_error();?>

to display individual errors

<?php echo form_error('name')?>
<?php echo form_error('comapny')?>

Use form_error('fieldname') to display errors.

For example to display field company error.

<?php
    $company = array('placeholder' => !empty(form_error('company')) ? form_error('company') : 'Company' ,'name' => 'company');
    echo form_input($company);
?>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM