php - 从数据库 codeigniter 获取选项值

标签 php database codeigniter

我有一个 php 表单,我想从保存在数据库中的表 emailaddress 中的值列表中为字段 Email 选择选项。表 emailaddress 有 2 个字段 1.idemailaddress 和 2.emailaddress,但我在尝试提取数据时仍然遇到错误,请帮忙

同意_ctrl

$data['department_list'] = $this->Main_model->get_department_list();
    $data['unit_list'] = $this->Main_model->get_unit_list();
    $data['terms'] = $this->Main_model->get_terms_list();
    $data['emailaddress_list'] = $this->Main_model->get_emailaddress_list();
    $data['managers_list'] = $this->Main_model->get_managers_list();
    $data['mtnlocation_list'] = $this->Main_model->get_mtnlocation_list();
    $data['institution_list'] = $this->Main_model->get_institution_list();
    $this->form_validation->set_rules('name', 'Name', 'required');
    $this->form_validation->set_rules('gender', 'Gender', 'alpha|xss_clean');
    $this->form_validation->set_rules('department', 'Department');
    $this->form_validation->set_rules('unit', 'Unit', 'numeric|xss_clean');

主模型文件

function get_emailaddress_list()
{
    $this->db->order_by('emailaddress', 'ASC');
    $query = $this->db->get('emailaddress');
    if ($query->num_rows() > 0)
    {
        foreach ($query->result() as $row)
        {
            $result [$row->id] =  $row;
        }
        return $result;
    }else{
        return FALSE;
    }

}

表单页面

                      <div class="form-group row">
             <label  class="col-sm-3 col-form-label" for="Email">Email Address:</label>
                                        <div class="col-sm-9">
                                            <select name="Email" class="Email form-control" id="Email">
                                                <option value="" <?php echo  set_select('Email', ''); ?> >-Select-</option>
                                                <?php if($emailaddress_list){ 
                                                    foreach($emailadress_list as $emailaddress){ ?>
                                                <option value="<?php echo $emailadress->idemailaddress?>" <?php echo set_select('Email', $emailaddress->idemailaddress); ?>><?php echo $emailaddress->emailaddress?></option>
                                                <?php }
                                                    }?>
                                            </select>
                                        </div>
                                    </div>

最佳答案

您的模型中不需要 foreach 循环,只需返回查询结果即可。

function get_emailaddress_list(){
  $this->db->order_by('emailaddress', 'ASC');
  $query = $this->db->get('emailaddress');
  $data = ($query->num_rows())? $query->result():false;
  return $data;
}

然后在 View 中循环遍历此结果以创建选择选项:

<select name="Email" class="Email form-control" id="Email">

  <?php if($emailaddress_list):?> 
      <option value="" disabled selected>-Select-</option>
    <?php foreach($emailadress_list as $row): ?>                                                    
      <option value="<?=$row->idemailaddress?>">
        <?=$row->emailaddress?>
      </option>
  <?php endforeach;?>
  <?php else:?>
     no records found
  <?php endif;?>                                 
</select>

关于php - 从数据库 codeigniter 获取选项值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58366998/

相关文章:

javascript - 我如何在 Codeigniter 中处理 pdf 格式的文件下载?

带链接的 PHP for() 循环

java - 如何检查数据库中是否存在表或列?

MySQL 将 "ORDER BY"子句应用于 UNION 查询

MySQL:搜索 child 记录

php - fatal error :调用未定义的方法 CI_Session::sess_destroy() 1.7.2

php - Codeigniter 在电子邮件类中使用关联数组

php - 是否可以使用 Javascript 读取 PHP session ?

php - MAMP 上的 Gearman PECL 扩展

php - 如何在php中使用markdown解析技术来制作单独的自动化流程