我正在制作一个选择框生成器(称为 ListGenerator),它需要从名为类别的表中获取选项名称并将它们添加到选择框。数据库还从一个表单进行更新,该表单允许用户输入要添加到选择框中的新选项。
目前,生成器仅采用最后输入的名称并将其显示在选择框中。我相信生成器直接从表单而不是查询获取结果?下面是将数据从表单插入到表中的代码以及应该从表中选择所有内容并将其放入选择框中的查询。
if(isset($_POST['name'])) {
$result= $pdo->prepare('INSERT INTO categories (name) VALUES(:name)');
unset($_POST['submit']);
$result->execute($_POST);
}
$ListGenerator =new ListGenerator();
$categoryresults = $pdo->query('SELECT * FROM categories');
foreach ($categoryresults as $row) {
$ListGenerator->setList([$row['name']]);
}
echo $ListGenerator->getHTML()
ListGenerator 的代码如下,当将固定字符串输入到上面代码中的 ->setList 函数时,效果很好:
<?php
class makelist{
public $list;
}
class ListGenerator {
public $makelist = [];
public function setlist($list){
$this->makelist = $list;
}
public function getHTML(){
$result = '<select name="category">';
foreach ($this->makelist as $list) {
$result = $result . '<option>' . $list . '</option>';
}
$result =$result . '</select>';
return $result;
}
}
?>
最佳答案
未测试,但我认为它应该获取类似这样的结果?
$categoryresults = $pdo->query('SELECT * FROM categories');
$listitems=array();
while( $rs=$categoryresults->fetch( PDO::FETCH_OBJ ) ){
$listitems[]=$rs->name
}
$ListGenerator->setList( $listitems );
关于php - 为什么我的选择框生成器不显示表中的所有选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34395227/