CodeIgniter Forums

Full Version: Drop Down List Unable to Pass Value
You're currently viewing a stripped down version of our content. View the full version with proper formatting.

El Forum

[eluser]deliriumfolk[/eluser]
How come when I pass my selected option, it always being seen as 0.
Hence does not post the correct value according to what I had selected in the drop down list.
What might be amiss that does not allow my controller to post in the correct value?

Code:
Model
public function set_user(){
                
        $data = array(
        'username' => $this->input->post('username'),
        'password' => $this->input->post('password'),
            'name' => $this->input->post('name'),
            'email' => $this->input->post('email'),
            'title' => $this->input->post('title'),
            'groupId' => $this->input->post('groupId')
        );
        
        return $this->db->insert('user', $data);
    }
Code:
Controller

public function adduser() {
        
        //$this->load->helper('form');
        $this->load->library('form_validation');
        //Get the user group data so it will be available for drop down list selection
        $data['usergroup'] = $this->usergroup_model->get_usergroup();
        
        $this->form_validation->set_rules('username', 'Username', 'trim|required|xss_clean');
     $this->form_validation->set_rules('password', 'Password', 'trim|required|xss_clean');
        $this->form_validation->set_rules('name', 'Name', 'trim|required|xss_clean');
        $this->form_validation->set_rules('email', 'Email', 'trim|required|xss_clean');
        $this->form_validation->set_rules('title', 'Title', 'trim|required|xss_clean');
        $this->form_validation->set_rules('usergroup', 'User Group', 'required');
        
        $data['title'] = 'CMS Add User';
        
        if($this->form_validation->run() == FALSE)
        {
            //Field validation failed hence user redirected back to add user form
            $this->load->helper(array('form', 'url'));
            $this->load->view('templates/cms/header', $data);
            $this->load->view('cms/adduser', $data);
            $this->load->view('templates/cms/footer');
        }
        else {
            $this->user_model->set_user();
            redirect('cms/listuser', 'refresh');
        }    
    }

Code:
View


<?php echo validation_errors(); ?>
<?php echo form_open('cms/adduser'); ?>

    <?php echo form_label('Username: ', 'username'); ?>
    <input size="24" id="username" name="username" value="<?php echo set_value('username'); ?>"/>
    <br/>
    &lt;?php echo form_label('Password: ', 'password'); ?&gt;
    &lt;input type="password" size="24" id="passowrd" name="password"/&gt;
    <br/>
    &lt;?php echo form_label('Name: ', 'name'); ?&gt;
    &lt;input type="text" size="24" id="name" name="name" value="&lt;?php echo set_value('name'); ?&gt;"/&gt;
    <br/>
    &lt;?php echo form_label('Email: ', 'email'); ?&gt;
    &lt;input type="text" size="24" id="email" name="email" value="&lt;?php echo set_value('email'); ?&gt;"/&gt;
    <br/>
    &lt;?php echo form_label('Job Title: ', 'title'); ?&gt;
    &lt;input type="text" size="24" id="title" name="title" value="&lt;?php echo set_value('title'); ?&gt;"/&gt;
    <br/>
    User Group: <select name="usergroup">
        <option value="" >--Select--</option>
        &lt;?php foreach ($usergroup as $usergroup_item) { ?&gt;
        <option value="&lt;?php echo $usergroup_item['groupId'] ?&gt;">&lt;?php echo $usergroup_item['name'] ?&gt;</option>
        &lt;?php } ?&gt;
    </select>
    <br/>
    &lt;?php echo form_submit('submit', 'Add User'); ?&gt;
&lt;/form&gt;

El Forum

[eluser]InsiteFX[/eluser]
Why not use the form_helpers dropdown?

El Forum

[eluser]deliriumfolk[/eluser]
Will changing my view to use form_dropdown solve the issue i am having?

El Forum

[eluser]dnc[/eluser]
What does the view source look like at lines:

Code:
User Group: <select name="usergroup">
        <option value="" >--Select--</option>
        &lt;?php foreach ($usergroup as $usergroup_item) { ?&gt;
        <option value="&lt;?php echo $usergroup_item['groupId'] ?&gt;">&lt;?php echo $usergroup_item['name'] ?&gt;</option>
        &lt;?php } ?&gt;
    </select>

Are all the variables being passed?

El Forum

[eluser]dnc[/eluser]
Also you can do a var dump instead of the return in your model to be sure the drop down variable value is being passed.

Code:
Model
public function set_user(){
                
        $data = array(
        'username' => $this->input->post('username'),
        'password' => $this->input->post('password'),
            'name' => $this->input->post('name'),
            'email' => $this->input->post('email'),
            'title' => $this->input->post('title'),
            'groupId' => $this->input->post('groupId')
        );


        var_dump($data);
        exit();
        
        //return $this->db->insert('user', $data);
    }

El Forum

[eluser]deliriumfolk[/eluser]
This is what the drop down will display.

Code:
<select name="usergroup">
<option value="">--Select--</option>
<option value="1">Administrator</option>
<option value="2">Editor</option>
<option value="3">Writer</option>
<option value="4">Translator</option>
<option value="5">Designer</option>
</select>

This is what it is being pass through. Why is it a Boolean?

Code:
array (size=6)
  'username' => string 'Writer' (length=6)
  'password' => string 'password' (length=8)
  'name' => string 'Writer' (length=6)
  'email' => string '[email protected]' (length=17)
  'title' => string 'Tech Writer' (length=11)
  'groupId' => boolean false

El Forum

[eluser]Aken[/eluser]
In your view, your select menu has a different name.

El Forum

[eluser]deliriumfolk[/eluser]
Hey, thanks guys for all your feedback. I got it working.
Aken had pointed it out that in my view the select menu has a different name.

What change in here is changing the name of the select to groupId.
Code:
View

User Group: <select name="groupId">
    <option value="" >--Select--</option>
    &lt;?php foreach ($usergroup as $usergroup_item) { ?&gt;
    <option value="&lt;?php echo $usergroup_item['groupId'] ?&gt;">&lt;?php echo $usergroup_item['name'] ?&gt;</option>
    &lt;?php } ?&gt;
</select>

And in here I changed the form_validation to groupId as well.
Code:
Controller

$this->form_validation->set_rules('groupId', 'User Group', 'required');

I believe the following changes allow the correct value from the drop down to pass to the model which is waiting to receive attribute from "groupId".