Could someone please take a look at my code and tell me what am doing wrong!
here is my view file ( html form )
<?php $attrib = array('class'=>'form-horizontal col-lg-6')?>
<?php
if( isset( $_POST['save'] ) )
{
echo validation_errors('<div class="alert alert-danger">', '</div>');
}
?>
<?=form_open('basic_info/edit_basic', $attrib )?>
<div class="form-group">
<div class="input-group">
<div class="input-group-addon" id="label">First Name</div>
<input type="text" name="fname" class="form-control" value="<?=$fname?>">
</div>
</div>
<div class="form-group">
<div class="input-group">
<div class="input-group-addon" id="label">Middle Name</div>
<input type="text" name="mname" class="form-control" value="<?=$mname?>">
</div>
</div>
<div class="form-group">
<div class="input-group">
<div class="input-group-addon" id="label">Last Name</div>
<input type="text" name="lname" class="form-control" value="<?=$lname?>">
</div>
</div>
<div class="form-group">
<div class="input-group">
<div class="input-group-addon"id="label">Date of birth</div>
<input type="text" name="dob" class="form-control" value="<?=$dob?>">
</div>
</div>
<div class="form-group">
<div class="input-group">
<div class="input-group-addon" id="label">Gender</div>
<select name="gender" class="form-control">
<?php if( $gender == true ){ ?>
<option class="form-control" value="male" selected="selected">Male</option>
<option class="form-control" valu="female">Female</option>
<?php }else{ ?>
<option class="form-control" valu="female" selected="selected">Female</option>
<option class="form-control" value="male">Male</option>
<?php } ?>
</select>
</div>
</div>
<div class="form-group">
<div class="">
<button type="submit" name="save" class="btn btn-primary">Save</button>
</div>
</div>
<?=form_close()?>
here is my controller ( form validation ) file-> /basic_info/edit_basic
defined('BASEPATH') OR exit('No direct script access allowed');
class Basic_info extends MX_Controller {
public function index()
{
if( $this->session->userdata('is_logged') )
{
$this->load->model('basic_info/edit_account');
$data = $this->edit_account->get_account_info();
$data->dob = date("d-m-Y", strtotime($data->dob));
$this->load->view('basic_info', $data);
}else{
redirect( 'welcome' );
}
}
public function edit_basic()
{
$config = array(
array(
'field'=>'fname',
'label'=>'First name',
'rules'=>'alpha|min_length[2]|max_length[150]',
'errors'=>array(
'alpha'=>'Sorry a name can only have alphabets',
'min_length'=>'Sorry a name can\'t be this short',
'max_length'=>'Sorry a name can\'t be this logng'
),
),
array(
'field'=>'mname',
'label'=>'Middle name',
'rules'=>'alpha|min_length[2]|max_length[150]',
'errors'=>array(
'alpha'=>'Sorry a name can only have alphabets',
'min_length'=>'Sorry a name can\'t be this short',
'max_length'=>'Sorry a name can\'t be this logng'
),
),
array(
'field'=>'lname',
'label'=>'Last name',
'rules'=>'alpha|min_length[2]|max_length[150]',
'errors'=>array(
'alpha'=>'Sorry a name can only have alphabets',
'min_length'=>'Sorry a name can\'t be this short',
'max_length'=>'Sorry a name can\'t be this logng'
),
),
array(
'field'=>'dob',
'label'=>'Date of birth',
'rules'=>'exact_length[10]|callback_date_valid',
'errors'=>array(
'exact_length'=>'Sorry! invalid length for a date',
'date_valid'=>'Sorry! invalid date format',
),
),
array(
'field'=>'gender',
'label'=>'Gender',
'rules'=>'alpha|max_length[6]|min_length[4]',
'errors'=>array(
'alpha'=>'Sorry! Invalid gener',
),
),
);
$this->form_validation->set_rules( $config );
if( $this->form_validation->run() == FALSE )
{
$this->load->model('basic_info/edit_account');
$data = $this->edit_account->get_account_info();
$this->load->view('basic_info', $data);
}else{
$this->load->model('basic_info/edit_account');
$this->edit_account->edit_basic();
$this->load->model('basic_info/edit_account');
$data = $this->edit_account->get_account_info();
$this->load->view('basic_info', $data);
}
}
public function date_valid()
{
$date = $this->input->post( 'dob' );
if( strpos( $date, '/') != FALSE )
{
list( $day, $month, $year ) = explode("/",$date);
if( $this->tarehe( $day, $month, $year ) )
{
return true;
}else{
return false;
}
}elseif( strpos( $date, '-') != FALSE ){
list( $day, $month, $year ) = explode("-",$date);
if( $this->tarehe( $day, $month, $year ) )
{
return true;
}else{
return false;
}
}
elseif( strpos( $date, '.') != FALSE )
{
list( $day, $month, $year ) = explode(".",$date);
if( $this->tarehe( $day, $month, $year ) )
{
return true;
}else{
return false;
}
}else{
return false;
}
}
public function tarehe( $day, $month, $year )
{
$first = $day[0];
$second = $day[1];
if( $first < 0 ){
$day = $second;
}
if( $day > 0 && $day <= 31 )
{
$first = $month[0];
$second = $month[1];
if( $first < 0 ){
$month = $second;
}
if( $month > 0 && $month <= 12 )
{
$limit_down = date('Y') - 17;
$limit_up = date('Y') - 50;
if( $year < $limit_down && $year > $limit_up )
{
return true;
}else{
return false;
}
}else{
return false;
}
}else{
return false;
}
}
}
I tried so many variations of dates but it always gives the error i'm frustrated already i don't see the problem with that field ( dob ), please help!