Php 从数据库中获取复选框值并显示在表单中,然后在prestashop中提交

Php 从数据库中获取复选框值并显示在表单中,然后在prestashop中提交,php,prestashop,Php,Prestashop,我想从数据库中获取复选框值并显示在表单中,当单击submit时,新值应在Prestashop中更新 我已经对获取的数据库值执行了foreach,但只显示了一个值 我的代码是: protected function getConfigForm() { $sql = 'SELECT id_order_state,name FROM '._DB_PREFIX_.'order_state_lang'; $results = Db::getInstance()->

我想从数据库中获取复选框值并显示在表单中,当单击submit时,新值应在Prestashop中更新

我已经对获取的数据库值执行了
foreach
,但只显示了一个值

我的代码是:

protected function getConfigForm()
{         
    $sql = 'SELECT id_order_state,name  FROM '._DB_PREFIX_.'order_state_lang';
    $results = Db::getInstance()->ExecuteS($sql);    
    foreach ($results as $row) {
        return array(
            'form' => array(
                'legend' => array(
                    'title' => $this->l('Settings'),
                    'icon' => 'icon-cogs',
                ),
                'input' => array(                   
                    array(
                        'type' => 'checkbox',
                        'label' => $this->l('Select Required Status'),
                        'required' => true,
                        'values' => array(
                            'query' => array(
                                array(
                                    'id' => 'AllFields',
                                    'name' => $this->l('All Fields'),
                                    'val' => 'All',
                                ),
                                array(
                                    'id' => 'OrderID',
                                    'name' => $this->l($row['name']),
                                    'val' => $row['id_order_state'],
                                    'required' => true,
                                ),
                            ),
                            'id' => 'id',
                            'name' => 'name'
                        ),
                    ),
                ),
                //     array(
                //         'type' => 'text',
                //         'name' => 'EXPORTORDERS_LOCATION',
                //         'label' => $this->l('Export Location'),
                //     ),
                'submit' => array(
                    'title' => $this->l('Save'),
                ),
            ),
        );
    }
}

您将从
foreach
循环中的方法返回。然后返回一个值。您应该首先在
foreach
循环中构建一个值数组,然后构建表单:

protected function getConfigForm()
{         
    $sql = 'SELECT id_order_state,name  FROM '._DB_PREFIX_.'order_state_lang';
    $results = Db::getInstance()->ExecuteS($sql);

    $values_query = array(array(
        'id' => 'AllFields',
        'name' => $this->l('All Fields'),
        'val' => 'All',
    ));
    foreach ($results as $row) {
        $values_query[] = array(
            'id' => 'OrderID',
            'name' => $this->l($row['name']),
            'val' => $row['id_order_state'],
            'required' => true,
        );
    }

    return array(
        'form' => array(
            'legend' => array(
                'title' => $this->l('Settings'),
                'icon' => 'icon-cogs',
            ),
            'input' => array(                   
                array(
                    'type' => 'checkbox',
                    'label' => $this->l('Select Required Status'),
                    'required' => true,
                    'values' => array(
                        'query' => $values_query,
                        'id' => 'id',
                        'name' => 'name'
                    ),
                ),
            ),
            'submit' => array(
                'title' => $this->l('Save'),
            ),
        ),
    );
}

是否查询返回多行。。?如果是这样,则在循环的第一次迭代中返回。如果没有,为什么需要循环?因为在我的数据库中存储了许多状态,我想将配置页面中的所有状态显示为复选框,因此我使用foreach在该页面中显示所有状态,但只有一个显示。我想说的是,您只处理结果的第一行,因为您在
foreach
循环中执行
返回
。那么我该怎么办?我是新来的普雷斯塔索普我想显示所有的价值观。你能帮我吗?你是对的,所有的都是正确的,但是我想要三到四层,因为列表太大了。垂直向下的列表太长,有没有办法将其分成4层?单击所有字段时如何使所有字段都选中?你能为这个和上面的问题提供一个解决方案吗?我认为这是一个不同的话题。您能为这个特定的前端需求提出一个新问题吗?如果这个答案解决了你最初的问题,你会接受吗#Florian Lematire是的,我提出了一个新问题。你能看一下吗?""