【问题标题】:Using PHP MVC framework, selected value from db into select box is not getting populated使用 PHP MVC 框架,未填充从 db 到选择框的选定值
【发布时间】:2021-04-15 10:16:24
【问题描述】:

我的控制器名为 Posts,

public function addmore(){
  
 if($_SERVER['REQUEST_METHOD'] == 'POST'){
 
        $Asystemtype=$this->postModel->fetchDoctype();
                            
        $data = [         
        'Asystemtype' => $Asystemtype,
        'Adoctype' =>   trim($_POST['Adoctype']) ];
          
        $this->view('posts/addmore', $data);
          
}         

我的模型名为 Post,

我有一个名为 systemtitles 的数据库表,列名为 ID 和 title。

public function fetchDoctype(){
      $this->db->query('SELECT * FROM systemtitles');
      $results = $this->db->resultSet();
      return $results;
    }
    

我的 VIEW 被命名为 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>          

我试图启动我的网站,这些是观察结果,
我的 SELECT 框只是空白,什么都没有填充,为什么? 我从控制器打印了 var_dump

var_dump($Asystemtype);

它正在回显所有(在我的数据库中至少我有五行!)。 从 db 为 Asystemtype 填充我的选择框所需的帮助。我的 Adoctype 没有问题,因为我直接从表单中填充。

【问题讨论】:

  • 尝试在 VIEW 中转储 $data 并在您的问题中插入转储。
  • 你确定应该回显 $Asystemtype->titles 而不是 $Asystemtype['titles'] 吗?
  • 我按照建议更改了我的代码 但它仍然没有显示任何数据。 在我的 VIEW 文件中,当我执行 var_dump($Asystemtype); 时,它显示字符串 '' (length=0);在我的帖子控制器中,我列出了我所有的数据库(系统标题)内容。我不明白为什么我的视图显示 var_dump 为 null。
  • 那么控制器发送给视图的$data是空的。请在此之前在控制器中转储以下值->查看 print_r($Asystemtype); print_r($_POST['Adoctype']) ;
  • 你说的是真的!我发现了我的错误。我所做的是从我的控制器发送一个空数据! .在我的 POST else{ $Asystemtype=$this->postModel->fetchDoctype(); $data=[ 'Asystemtype' =>'', 'Adoctype' => ''] 这是在我的 else 帖子声明中。也就是说,如果我没有发帖,那么它有 'Asystemtype' =>'' 现在我更正为 'Asystemtype' => $Asystemtype,Thanx Alexander Dobernig

标签: php database codeigniter select model-view-controller


【解决方案1】:

我发现了我的错误。我所做的是从我的控制器发送一个空数据!在我的 POST else 声明中有

else{ $Asystemtype=$this->postModel->fetchDoctype(); $data=[ 'Asystemtype' =>'', 'Adoctype' => ''];
$this->view('posts/addmore', $data);
 }

那是个错误。也就是说,如果我没有发帖,那么它将 'Asystemtype' =>'' 作为空值。现在我更正为 'Asystemtype' => $Asystemtype 感谢 Alexander Dobernig 的宝贵建议/cmets

【讨论】:

    猜你喜欢
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-28
    • 1970-01-01
    • 2012-09-10
    相关资源
    最近更新 更多