【问题标题】:get option values from database codeigniter从数据库 codeigniter 获取选项值
【发布时间】:2025-12-25 07:45:06
【问题描述】:

我有一个 php 表单,我想从数据库中的电子邮件地址表中保存的值列表中为字段电子邮件选择选项。表 emailaddress 有 2 个字段 1. idemailaddress 和 2. emailaddress,但我在尝试提取数据时仍然出错,请帮助

Agreement_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>

【问题讨论】:

  • 错误是什么?

标签: php database codeigniter


【解决方案1】:

您的模型中不需要 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;
}

然后您在视图中遍历此结果以创建选择选项:

<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>

【讨论】:

  • 您好Vickel,感谢您的回复,加载页面的错误已停止,页面正在加载但表单字段tu populate emailaddress为空,请帮助确认我的表单是否有错误查看页面
  • 请检查 print_r($emailaddress_list) 的输出是什么?
  • @user2943301:请删除您最后的评论,如果这些是真实的电子邮件地址,谢谢,更新答案
  • 电子邮件没有填充,即使在使用您提供的代码对其进行编辑后,您认为可能有什么问题
猜你喜欢
相关资源
最近更新 更多
热门标签