使用PHP MVC框架,从db到选择框中的选定值不会被填充
我的管理员叫波斯特使用PHP MVC框架,从db到选择框中的选定值不会被填充,php,database,codeigniter,select,model-view-controller,Php,Database,Codeigniter,Select,Model View Controller,我的管理员叫波斯特 public function addmore(){ if($_SERVER['REQUEST_METHOD'] == 'POST'){ $Asystemtype=$this->postModel->fetchDoctype(); $data = [ 'Asystemtype' => $Asystemtype,
public function addmore(){
if($_SERVER['REQUEST_METHOD'] == 'POST'){
$Asystemtype=$this->postModel->fetchDoctype();
$data = [
'Asystemtype' => $Asystemtype,
'Adoctype' => trim($_POST['Adoctype']) ];
$this->view('posts/addmore', $data);
}
我的模特叫波斯特
我有一个名为systemtitles的数据库表,其中的列名为ID和titles
public function fetchDoctype(){
$this->db->query('SELECT * FROM systemtitles');
$results = $this->db->resultSet();
return $results;
}
我的视图名为addmore
<form action="<?php echo URLROOT; ?>/posts/addmore" method="post" >
<div>
<label for="Asystemtype">System Type: <sup>*</sup></label>
<select id="systype" name="Asystemtype" class="form-control form-control-lg" value="<?php echo $data['Adoctype']; ?>">
<?php foreach($data['Asystemtype'] as $Asystemtype) :?>
<option value = "<?php echo $Asystemtype->titles; ?>"> <?php echo $Asystemtype->titles; ?> </option>
<?php endforeach; ?>
</select>
</div>
<div>
<label for="Adoctype">Document Type: <sup>*</sup></label>
<select id="doctype" name="Adoctype" class="form-control form-control-lg" value="<?php echo $data['Adoctype']; ?>">
<option value="Select">Select Doc Type</option>
<option value="HRS">HRS </option>
<option value="HDD">HDD </option>
</select>
</div>
它回显了所有(在我的数据库中至少有五行!)。
从db for Asystemtype填充我的选择框所需的帮助。我的
Adoctype没有问题,因为我是直接从表单填充的。我发现了错误。我所做的是从我的控制器发送一个空数据!!在我的帖子中,else的声明
else{ $Asystemtype=$this->postModel->fetchDoctype(); $data=[ 'Asystemtype' =>'', 'Adoctype' => ''];
$this->view('posts/addmore', $data);
}
那是个错误。也就是说,如果我没有做post,那么它将“Asystemtype”=>”作为空值。现在我更正为'Asystemtype'=>$Asystemtype
感谢Alexander Dobernig的宝贵建议/评论尝试在视图中转储$data,并在问题中插入转储。您确定应该回显$Asystemtype->titles而不是$Asystemtype['titles']?我按照建议将代码更改为此,但仍然没有显示任何数据。在我的视图文件中,当我执行var_转储($Asystemtype)时,它正在显示字符串“”(长度=0);在我的Posts控制器中,我将列出我的所有数据库(systemtitles)内容。我无法理解为什么我的视图显示var_dump为null。那么从控制器发送到视图的$data为空。请在此->查看打印之前在控制器中转储以下值($Asystemtype);打印($_POST['Adoctype']);你说的是真的!。我发现了我的错误。我所做的是从我的控制器发送一个空数据。在我的帖子else中,{$Asystemtype=$this->postModel->fetchDoctype();$data=['Asystemtype'=>'','Adoctype'=>''这是在我的帖子else语句中。也就是说,如果我没有写帖子,那么它就有了'Asystemtype'=>'',现在我更正为'Asystemtype'=>$Asystemtype',Thanx Alexander Dobernig
else{ $Asystemtype=$this->postModel->fetchDoctype(); $data=[ 'Asystemtype' =>'', 'Adoctype' => ''];
$this->view('posts/addmore', $data);
}