预填充基于数组的jquery ui多选

时间:2013-12-31 06:47:48

标签: arrays jquery-ui codeigniter multi-select selected

我有一个工作jquery多选。页面/表单,当提交回复自身时,多选中的选项操纵显示的数据。

我遇到的问题是我不确定如何根据发布的表单值填充多选列表中的选定选项。

所以例如,我的多选中填充了我的数据库中的3个选项。苹果,梨,橘子。我选择苹果和梨,所以橙子仍未被选中。

当页面提交并重新加载时,将再次取消选择所有三个选项。我想要仍然选择苹果和梨,并使用发布信息来做到这一点。

我正在使用codeigniter,所以在我的控制器中有以下内容:

$sections = $this->_model()->getsections();
        $sectionstr = '<option value=""> </option>';
        if ( $sections !== "false") {
          foreach ($sections as $key => $value) {
            if ( $key === 0 ) {
            }
            else {
              $sectionstr = $sectionstr.'<option  value="'.$key.'">'.$value.'</option>'."\n";
            }
          }
        }

我的post数组包含在变量中:

$sectionval=$this->input->post('section');

如何修改控制器foreach循环以查看数组,如果存在则将其标记为已选中?

所以行输出

 $sectionstr.'<option selected value="'.$key.'">'.$value.'</option>'."\n";

一如既往地谢谢,

1 个答案:

答案 0 :(得分:2)

修改您的代码,如下所示

$sections = $this->_model ()->getsections ();
    $sectionval=$this->input->post('section');
    $sectionstr = '<option value=""> </option>';
    if ($sections !== "false") {
        foreach ( $sections as $key => $value ) {
            if ($key === 0) {
                continue;
            }
            $selected = $sectionval == $value ? 'selected="selected"' : '';

            $sectionstr = $sectionstr . '<option  value="' . $key . '" ' . $selected . '>' . $value . '</option>' . "\n";
        }
    }