In our previous tutorials we have explained you , how to create and validate forms in codeigniter. In this blog, we will demonstrate you to create and validate a form containing a select option box field using CodeIgniter PHP framework.
In our example, we have created a select option field in form with fetched values from database using for each loop and set validation rules for fields.
<select name="city">
<option value="none" selected="selected">------------Select City------------</option>
<!-----Displaying fetched cities in options using foreach loop ---->
<?php foreach($students as $student):?>
<option value="<?php echo $student->student_id?>"><?php echo $student->city?></option>
<?php endforeach;?>
</select>
watch our live demo or copy paste our codes as per directed in read me file.
download the selectoptionfield_ci.zip file from below link, extract files and include them in view, controller and model directory of your codeigniter framework as shown in the Read Me.txt file.
-: See Also :-
Form Validation using CodeIgniter
VIEW FILE: select_view.php
In this, we fetched all the adresses from data base and showed them in select option field.
<html>
<head>
<title> Create And Validate Select Option Field (using for each loop) In CodeIgniter</title>
<link href='http://fonts.googleapis.com/css?family=Marcellus' rel='stylesheet' type='text/css'>
<link rel="stylesheet" type="text/css" href="<?php echo base_url(). "css/select.css" ?>">
</head>
<body>
<div id="container">
<?php echo form_open('select_ctrl/error'); ?>
<h3>Create And Validate Select Option Field (using for each loop) In CodeIgniter</h3>
<?php echo form_label('Student Name :'); ?> <?php echo form_error('dname'); ?>
<?php echo form_input(array('id' => 'dname', 'name' => 'dname')); ?>
<?php echo form_label('Student Email :'); ?> <?php echo form_error('demail'); ?>
<?php echo form_input(array('id' => 'demail', 'name' => 'demail')); ?>
<?php echo form_label('Student City :'); ?><?php echo form_error('city'); ?>
<select name="city">
<option value="none" selected="selected">------------Select City------------</option>
<!----- Displaying fetched cities in options using foreach loop ---->
<?php foreach($students as $student):?>
<option value="<?php echo $student->student_id?>"><?php echo $student->city?></option>
<?php endforeach;?>
</select>
<?php echo form_submit(array('id' => 'submit', 'value' => 'Submit')); ?>
<?php echo form_close(); ?>
</div>
</body>
</html>
CONTROLLER FILE: select_ctrl.php
copy the below file in your controller directory.
<?php
class select_ctrl extends CI_Controller{
function __construct(){
parent::__construct();
$this->load->model('select_model');
}
function index(){
// Loading model to fetch all records from database
$data['students'] = $this->select_model->show_students();
$this->load->view('select_view', $data);
}
// Validation Function
function error(){
$this->load->library('form_validation');
$abcd = $this->input->post('city');
$this->form_validation->set_error_delimiters('<div class="error">', '</div>');
$this->form_validation->set_rules('dname', 'Username', 'required|min_length[5]|max_length[15]');// Validating Name field.
$this->form_validation->set_rules('demail', 'Email', 'required|valid_email'); // Validating Email field.
$this->form_validation->set_rules('city', 'city', 'required|callback_select_validate'); // Validating select option field.
if ($this->form_validation->run() == FALSE) {
$this->index();
} else{
echo "<script>alert('Form Submitted Successfully....!!!! ');</script>";
$this->index();
}
}
// Below function is called for validating select option field.
function select_validate($abcd)
{
// 'none' is the first option that is default "-------Choose City-------"
if($abcd=="none"){
$this->form_validation->set_message('select_validate', 'Please Select Your City.');
return false;
} else{
// User picked something.
return true;
}
}
}
?>
MODEL FILE: select_model.php
Create new class in your model as shown below.
<?php
class select_model extends CI_Model{
//function to run select all query from students table
function show_students(){
$query = $this->db->get('students');
$query_result = $query->result();
return $query_result;
}
}
?>
My SQL Code Segment:
To create database and table, execute following codes in your My SQL .
CREATE DATABASE college;
CREATE TABLE students(
student_id int(10) NOT NULL AUTO_INCREMENT,
student_name varchar(255) NOT NULL,
student_email varchar(255) NOT NULL,
student_contact varchar(255) NOT NULL,
student_address varchar(255) NOT NULL,
student_city varchar(255) NOT NULL,
PRIMARY KEY (employee_id)
)
CSS FILE: select.css
Styling HTML Elements.
#container{
width:960px;
height:610px;
margin:50px auto
}
.error{
color:red;
font-size:13px;
margin-bottom:-15px
}
form{
width:345px;
padding:0 50px 20px;
background:linear-gradient(#A5FFFF,#FFF);
border:1px solid #ccc;
box-shadow:0 0 5px;
font-family:'Marcellus',serif;
float:left;
margin-top:10px
}
h3{
text-align:center
}
hr{
border:0;
border-bottom:1.5px solid #ccc;
margin-top:-10px;
margin-bottom:30px
}
label{
font-size:17px
}
input,select{
width:100%;
padding:10px;
margin:6px 0 20px;
border:none;
box-shadow:0 0 5px
}
input#submit{
margin-top:20px;
font-size:18px;
background:linear-gradient(#22abe9 5%,#36caf0 100%);
border:1px solid #0F799E;
color:#fff;
font-weight:700;
cursor:pointer;
text-shadow:0 1px 0 #13506D
}
input#submit:hover{
background:linear-gradient(#36caf0 5%,#22abe9 100%)
}
Conclusion:
Now, you can create and validate your own select option field using codeigniter framework. keep following us to learn more.
Recommended blogs:-
5 Replies to “How To Create And Validate Select Option Field (using for each loop) in CodeIgniter”
Hey thanks for the code. It saved me. 🙂
Could you have this inputting to a database ,
Im having trouble with it
You can share your issue here…. after reviewing it .. I will let you know about the solution.
Nice solution actually iam using this function in login page may i know if iam select i want view the image after selected city and if iam click i want show display the information about the image.
Please if u wan to code i send it ur mail please give me help buddy.
Excellent work sir,
literally learn whole CI through these tutorials. Perfect to the point Tutorials.
Only one change in this tutorial in ctrl_view.php on line 28 it must be,
<option value="student_id; ?>”>student_city; ?>
student_city because in database row name is student_city so we can echo it’s through $student->student_city.