Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用PHP MVC框架,从db到选择框中的选定值不会被填充_Php_Database_Codeigniter_Select_Model View Controller - Fatal编程技术网

使用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);
 }