【问题标题】:Retrieving data from database to dropdownlist using codeigniter使用codeigniter从数据库中检索数据到下拉列表
【发布时间】:2014-11-28 22:44:19
【问题描述】:

我已经可以将数据输入数据库,但我无法将其从数据库中检索到下拉列表中。谁能帮帮我?

我的看法:

<body>

 <div id="container">


      <?php echo form_open('form/myform'); ?>

       <select class="form-control" >
        <?php 

        foreach($groups as $row)
        { 
          echo '<option value="'.$row->school.'">'.$row->school.'</option>';
        }
        ?>
       </select>

     <div id="addother">
       <?php  echo form_input(array('id'=>'addother_input', 'name'=>'school', 'placeholder'=>'Enter name of school...')); ?>
       <input type="submit" id="add" name="submit" value="+" />
     </div>

     <?php echo form_close(); ?>
   </div>

我的控制器:

    function myform(){
    $data['title'] = "myform";

    $this->load->library('form_validation');

    $this->load->model('school_model');

    $sdata['school'] = $this->input->post('school');

    $this->school_model->addItem($sdata);

    $this->load->view('myform');

}

function drop() {
    $this->load->model('school_model');

    $data['groups'] = $this->school_model->getAll();

    $this->load->view('myform', $data);
}

我的模特:

 function getAll() {

   $query = $this->db->query('SELECT school FROM tblschool');

   return $query->result();

}


function addItem($sdata){

   return $this->db->insert('tblschool', $sdata);

}

我真的很困惑如何将数据库中的数据检索到下拉列表中。非常感谢您的帮助。

【问题讨论】:

  • 我从你的视图代码中看到,你还没有从数据库中检索到任何东西!$options = array( 'school' =&gt; $row-&gt;school , 'addother' =&gt; 'Add other...' );
  • 你能教我怎么做吗?
  • 我已经编辑了我的帖子。你能看一下吗?我仍然无法从数据库中提取数据到下拉列表中。

标签: php database codeigniter


【解决方案1】:

您是否正在访问form/drop 来生成视图?如果您想通过 form/myform 访问此内容,您必须更改 myform 以包含对 $this-&gt;school_model-&gt;getAll(); 的调用

public function myform()
{
    $data['title'] = "myform";

    $this->load->library('form_validation');
    $this->load->model('school_model');

    if($this->input->post()){
       $sdata['school'] = $this->input->post('school');
       $this->school_model->addItem($sdata);
    }

    $data['groups'] = $this->school_model->getAll();
    $this->load->view('myform', $data);
}

【讨论】:

  • 我已经尝试过您的代码,但我输入的数据仍然不会出现在下拉列表中。它只添加空白行。
  • 尝试在调用getAll()后在控制器中添加一个vardump。 var_dump($data['groups']); 看看你从数据库中得到了什么。理想情况下,您应该看到一组带有 school 属性的 stdClass 对象。
  • 出现如下:array(2) { [0]=> object(stdClass)#18 (2) { ["id"]=> string(3) "320" ["school "]=> string(5) "AMACC" } [1]=> object(stdClass)#19 (2) { ["id"]=> string(3) "321" ["school"]=> string( 7) "adfasdf" } }
  • 如果是这种情况,那么它应该可以工作。由于您似乎确实遇到了麻烦,请添加另一个 var_dump 但这次是在视图中。如果您的代码与上面包含的完全相同,请在视图中的开始选择标记之前添加另一个 &lt;?php var_dump($groups); ?&gt;。它应该和你现在得到的完全一样。我认为此时您可以自己调试遇到的问题。
  • 这是我将 var_dump 放在选择标记之前后出现的内容:array(1) { [0]=> object(stdClass)#18 (2) { ["id"]=> string (3) "322" ["school"]=> 字符串(8) "asdfasdf" } }
猜你喜欢
  • 2015-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-22
  • 2017-03-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多