在数据库中下拉菜单更新选择

时间:2012-09-27 18:26:45

标签: drop-down-menu kohana

我不知道如何将更改从下拉菜单保存到数据库。

我从数据库中获取列表。

$list_categories = ORM::factory('category')->find_all()->as_array('category_id','category_name');

我抓取已保存在数据库中的所选类别。

$selected_category = $edit_forum->category_id;

我回复下拉菜单。

Form::select('category', $list_categories, $selected_category);

假设它列出了A,B,C。B是当前选择的类别,我想将其更改为A.我想将此更改保存到数据库,但不知道如何。

我目前正在执行以下操作以保存到数据库:

    $edit_forum->values($this->request->post());

    $errors = array();

    try {

        $edit_forum->save();

        $this->request->redirect('acp/forums');

   } catch (ORM_Validation_Exception $ex) {

       $errors = $ex->errors('validation');

   }

上述内容适用于文本字段,但不适用于下拉菜单。

编辑:我的问题似乎是我无法更改category_id。谁知道怎么样? category_id是外键。

2 个答案:

答案 0 :(得分:0)

$edit_forum = new Model_Category($this->request->param('id'));

    if ( ! $edit_forum->loaded())
        throw new HTTP_Exception_404("Category not found");

    if ($this->request->post())
    {
        try
        {
            $edit_forum->values($this->request->post())
                ->update();

            //if you want to make redirection somewhere after update
            //$this->redirect('');  

        }
        catch (ORM_Validation_Exception $e)
        {
            $this->view->errors = $e->errors('');
        }
    }

如果我做对了你想要的。希望这有帮助。

 <select id="category" name="category_id">
     <option value="category_id">category_name</option>
 </select>

答案 1 :(得分:0)

我明白了。我的路线,规则和标签都是错误的。