making a select dropdown from database in codeigni

2019-09-18 05:44发布

问题:

I am new with codeigniter.I want to make a select dorpdown that gets its value and title from database.I tried some codes but it did not work.There are my codes:

Model
    function get_sec_info(){
    $records=$this->db->query('SELECT sec_id,name FROM section');
    if($records->num_rows() > 0)
    return $records->result();}
Controller
    function sec_ifo(){
    $data['rec']=$this->mymodel->get_sec_info();
    $this->load->view('article',$data);}
View
    <select name="section">
    <?php foreach($rec as $row) {?>
    <option value="<?php echo $row->sec_id?>"><?php echo $row->name ?></option>"
    <?php } ?>

It does not show any error and any option to show

回答1:

In your controller you are passing value like

$data['red']=$this->mymodel->get_sec_info();

and in you view you are taking value like

<?php foreach($rec as $row) {?>

So change the vairiable $rec to $red in your view like

<?php foreach($red as $row) {?>


回答2:

Your option tag is badly formed. The opening option tag is missing its closing bracket, and the closing quotation mark for the option tag's value is in the wrong place.

Corrected:

<option value="<?php echo $row->sec_id?>"><?php echo $row->name ?></option>


回答3:

You should use CI form helper function instead of using html code

In model

 function get_sec_info()
{
    $records=$this->db->query('SELECT sec_id,name FROM section');
    $ret_arr = array();
    if($records->num_rows() > 0)
    {
      while($records->result() as $r)
       $ret_arr[$r->sec_id] = $r->name;
    }
     return $records->result();
}

In your view

echo form_dropdown("section",$rec);

Remove your code below in view:

<select name="section">
    <?php foreach($rec as $row) {?>
    <option value="<?php echo $row->sec_id?>"><?php echo $row->name ?></option>"
    <?php } ?>

Make sure you have loaded form helper.



标签: codeigniter