如何使用Codeigniter从数据库中获取数据并将其显示在下拉列表中



我从数据库表中收集数据并将其显示在下拉列表中,以下是我迄今为止所做的

这是我的控制器:

public function assign_hostel() {
$inner_page_title = 'Assign Hostel'; 
$this->admin_header('Assign Hostel', $inner_page_title);
$data['hostel'] = $this->hostel_model->get_hostel();    
$this->load->view('admin/hostel/assign_hostel');
$this->admin_footer();
}

这是我的型号:

public function get_hostel() { //get all hostel
$this->db->order_by('hostel_name', 'asc');
return $this->db->get_where('school_hostel',  array('hostel_name' => 
$hostel_name)->result();
}

我的观点:

<div class="form-group">
<label class="form-control-label">Select Hostel</label>
<select class="form-control" name="state_of_origin" required>
<option value="">-Select-</option>
<?php 
$hostel_name = get_hostel();
foreach ($hostel_name as $hostel ) { ?>
<option value="<?php echo $hostel; ?>"><?php echo $hostel; ?></option>
<?php } ?>
</select>
</div>

为什么我得到一个空的下拉列表?

希望这将帮助您:

在您的视图中通过$data['hostels'],如下所示:

首先,你的控制器assign_hostel应该是这样的:

public function assign_hostel() 
{
$inner_page_title = 'Assign Hostel'; 
$this->admin_header('Assign Hostel', $inner_page_title);
$data['hostels'] = $this->hostel_model->get_hostel();    
$this->load->view('admin/hostel/assign_hostel' ,$data);
$this->admin_footer();
}

其次,你的view应该是这样的:

<div class="form-group">
<label class="form-control-label">Select Hostel</label>
<select class="form-control" name="state_of_origin" required>
<option value="">-Select-</option>
<?php if ( !empty($hostels)) {
foreach ($hostels as $hostel ) { ?>
<option value="<?=$hostel->hostel_name; ?>"><?=$hostel->hostel_name;?></option>
<?php } }?>
</select>
</div>

更多信息:https://www.codeigniter.com/user_guide/general/index.html

你不能直接从视图中获取$hostel到模型,你必须从控制器中获取并通过$data来查看

CONTROLLER:
public function assign_hostel() {
$inner_page_title = 'Assign Hostel'; 
$this->admin_header('Assign Hostel', $inner_page_title);
$data['hostels'] = $this->hostel_model->get_hostel();    
$this->load->view('admin/hostel/assign_hostel', $data);
$this->admin_footer();
}
MODEL:
public function get_hostel() { //get all hostel
$this->db->order_by('hostel_name', 'asc');
return $this->db->get_where('school_hostel',  array('hostel_name' => 
$hostel_name)->result();
}
VIEW:
<div class="form-group">
<label class="form-control-label">Select Hostel</label>
<select class="form-control" name="state_of_origin" required>
<option value="">-Select-</option>
<?php 
foreach ($hostels as $hostel) { ?>
<option value="<?php echo $hostel; ?>"><?php echo $hostel; ?></option>
<?php } ?>
</select>
</div>

将$data传递到控制器中的查看函数控制器:

public function assign_hostel() {
$inner_page_title = 'Assign Hostel'; 
$this->admin_header('Assign Hostel', $inner_page_title);
$data['hostel'] = $this->hostel_model->get_hostel();    
$this->load->view('admin/hostel/assign_hostel', $data);
$this->admin_footer();
}

并且在视图中获得$hostel

视图:

<div class="form-group">
<label class="form-control-label">Select Hostel</label>
<select class="form-control" name="state_of_origin" required>
<option value="">-Select-</option>
<?php 
foreach ($hostel as $hostel ) { ?>
<option value="<?php echo $hostel; ?>"><?php echo $hostel; ?></option>
<?php } ?>
</select>

您需要做的更改很少:

变更1:

加载视图时传递$data变量:

$data['hostel'] = $this->hostel_model->get_hostel();    
$this->load->view('admin/hostel/assign_hostel', $data); // $data as 2nd argument

变更2:

$data数组的访问密钥作为视图文件中的变量,如下所示:

<div class="form-group">
<label class="form-control-label">Select Hostel</label>
<select class="form-control" name="state_of_origin" required>
<option value="">-Select-</option>
<?php 
//$hostel_name = get_hostel(); NO NEED THIS LINE
foreach ($hostel as $h ) { ?>
<option value="<?php echo $h->hostel_name; ?>"><?php echo $h->hostel_name; ?></option>
<?php } ?>
</select>
</div>

我仍然需要知道您正在获取哪些列。因为在<option>标记中,您需要使用变量来访问它们的属性。现在我已经使用了变量$h本身,这是错误的。

你应该使用类似$h->name;的东西

相关内容

  • 没有找到相关文章

最新更新