So I am attempting for my first time to use CI’s built in form_validation “tool” to much avail and research I can’t seem to grasp it. I have everything in my view setup correctly and my controller seems to be right on… My problem is when I click the “submit” button it links to the new function but doesn’t display any error messages regardless of what I put in the “name” , “email” boxes. I’m looking to have it display an error message practically anywhere right now I just need it to run through the validation and display an error message.
Controller file
public function intelli()
{
$data["messages"] = "";
$this->load->view('engage_header');
$this->load->view('engage_nav');
$this->load->view('intelli/content_intelli', $data);
$this->load->view('engage_footer');
}
public function intelli_email()
{
$this->load->helper('form', 'url'));
$this->load->library('form_validation');
$this->form_validation->set_rules('name_area', 'Name', 'required|alpha|xss_clean');
$this->form_validation->set_rules('email_area', 'Email', 'required|valid_email|xss_clean');
$this->form_validation->set_rules('phone_area', 'Phone', 'is_numeric|xss_clean');
if ($this->form_validation->run() == FALSE) {
$data["messages"] = "";
} else {
$data["messages"] = "The Email has successfully been sent";
}
$this->load->view('engage_header');
$this->load->view('engage_nav');
$this->load->view('intelli/content_intelli', $data);
$this->load->view('engage_footer');
}
View file
<?php
$this->load->helper("form");
?>
<div class="request_demo">
<div id="request_logo"></div>
<div id="top_paragraph">
Intelliship & HALO deliver immediate and quantifiable ROI. Schedule a demo to learn how this transportation management software will positively impact your company's bottom-line profit.
</div>
<div id="entry_box">
<?php echo validation_errors();
echo $messages;
?>
<div id="request_form">
<?php echo form_open('/index.php/site/intelli_email')?>
<input id="name_area" type="text" placeholder="NAME" value="" required/><br/>
<input id="email_area" type="text" placeholder="EMAIL" value="" required/><br/>
<input id="phone_area" type="text" placeholder="PHONE" value=""><br/>
<input id="submit_req" type="submit" value="SUBMIT">
</form>
</div>
</div>
I know the code is sloppy right now, but I’m just looking for functionality over beauty. also noted since I am loading the helper(‘form’) inside the controller it is redundant to load it in the view.
You have only specified
idfor your form elements. Give themnameas wellCodeigniter hooks up the rule sets, with elements based on name, not id