how to get the value of form input box in codeigniter


value of FORM INPUT Help!!

//this is just a refrence of $nm and $fid from test_model//

  $data['fid']['value'] = 0;
  $data['nm'] = array('name'=>'fname',

say i have one form_view with

<?=form_label('Insert Your Name :')?>

and a function to get single row

 function get($id){
    $query = $this->db->getwhere('test',array('id'=>$id));
    return $query->row_array();

then in controller.. index($id = 0)

and somewhere in index

 if((int)$id > 0)
            $q = $this->test_model->get($id);
            $data['fid']['value'] = $q['id'];
            $data['nm']['value'] = $q['name'];

and mysql table has something like 1. victor, 2. visible etc. as a name value

but here its not taking the value of name and id from form_input and not showing it again in form_view in same input box as victor etc so to update and post it back to database...

anyone please help!! and please be easy as I am new to CI!!

2/20/2010 1:42:25 PM

Accepted Answer

Based on your comment to my first answer, here is a sample of a Controller, Model and View to update a user entry pulled from a table in a database.


class Users extends Controller
    function Users()

    function browse()

    function edit($id)
        // Fetch user by id
        $user = $this->user_model->get_user($id);

        // Form validation
        $this->form_validation->set_rules('name', 'Name', 'required');

        if ($this->form_validation->run())
            // Update user
            $user['name'] = $this->input->post('name', true);

            // Redirect to some other page
            // Load edit view
            $this->load->view('users/edit', array('user' => $user));


class User_model extends Model
    function User_model()

    function get_user($user_id)
        $sql = 'select * from users where user_id=?';
        $query = $this->db->query($sql, array($user_id));
        return $query->row();

    function update_user($user)
        $this->db->where(array('user_id' => $user['user_id']));
        $this->db->update('users', $user);


<?php echo form_open('users/edit/' . $user['user_id']); ?>
    <label for="name">Name:</label>
    <input type="text" name="name" value="<?php echo set_value('name', $user['name']); ?>" />
    <input type="submit" value="Update" />
<?php echo form_close(); ?>
2/20/2010 5:15:14 PM

From your question I think you want to display a form to edit a person record in the database.

Controller code

// Normally data object is retrieved from the database
// This is just to simplify the code
$person = array('id' => 1, 'name' => 'stephenc');

// Pass to the view
$this->load->view('my_view_name', array('person' => $person));

View code

<?php echo form_label('Your name: ', 'name'); ?>
<?php echo form_input(array('name' => 'name', 'value' => $person['name'])); ?>

Don't forget to echo what is returned from form_label and form_input. This could be where you are going wrong.

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow