php - 使用 PHP MVC 框架,未填充从 db 到选择框的选定值
问题描述
我的控制器名为 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 和标题的列。
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 没有问题,因为我直接从表单中填充。
解决方案
我发现了我的错误。我所做的是从我的控制器发送一个空数据!在我的 POST else 声明中有
else{ $Asystemtype=$this->postModel->fetchDoctype(); $data=[ 'Asystemtype' =>'', 'Adoctype' => ''];
$this->view('posts/addmore', $data);
}
那是个错误。也就是说,如果我没有发帖,那么它将 'Asystemtype' =>'' 作为空值。现在我更正为 'Asystemtype' => $Asystemtype 感谢 Alexander Dobernig 提出的宝贵建议/意见
推荐阅读
- python - Django 使用 .value 过滤数据库并调用外键
- go - 数据竞赛无法理解
- c - C 代码的 x86 反汇编生成:orq $0x0, %(rsp)
- apache-spark - 将 pyspark 列转换为列表
- r - 如何引用 R 中的所有其他列?
- python-3.x - 如果出现超过 1 次,如何将子标签移动到母标签之后?
- python - ValueError 视图没有返回 HttpResponse 对象。它返回 None 而不是
- javascript - 为什么 window.setTimeout 返回错误?
- reactjs - react-native undefined 不是对象
- css - 返回 true 的 React 组件将仅接受通过内联样式的样式