【问题标题】:how to create a multi select box with out selected options codeigniter如何创建一个没有选定选项的多选框
【发布时间】:2011-12-10 21:07:12
【问题描述】:

您好,我正在使用codeigniter,我想在我的页面上添加一个multi select box

我看到了 codeigniter 用户指南示例,但它所做的是在多选中设置值。

喜欢这个

$options = array(
                  'small'  => 'Small Shirt',
                  'med'    => 'Medium Shirt',
                  'large'   => 'Large Shirt',
                  'xlarge' => 'Extra Large Shirt',
                );

$shirts_on_sale = array('small', 'large');

echo form_dropdown('shirts', $options, $shirts_on_sale);

在这样创建的多选框中

<select name="shirts" multiple="multiple">
<option value="small" selected="selected">Small Shirt</option>
<option value="med">Medium Shirt</option>
<option value="large" selected="selected">Large Shirt</option>
<option value="xlarge">Extra Large Shirt</option>
</select>

它必须提供要在$shirts_on_sale 数组中选择的选项,但在我的情况下,我想创建一个多选但dont want selected options 我试图传递一个空数组。但它不起作用

喜欢这个

$array = array();
echo form_dropdown('shirts', $substore_details, $array); 

如何创建没有选定项目的多选。请帮忙........

【问题讨论】:

    标签: php codeigniter validation codeigniter-form-helper


    【解决方案1】:

    您应该使用 form_multiselect() 助手。

    $options = array(
                      'small'  => 'Small Shirt',
                      'med'    => 'Medium Shirt',
                      'large'   => 'Large Shirt',
                      'xlarge' => 'Extra Large Shirt',
                    );
    
    echo form_multiselect('shirts', $options);
    

    【讨论】:

      【解决方案2】:

      我唯一想到的就是使用一个包含多个空元素的数组:

      $options = array(
                        'small'  => 'Small Shirt',
                        'med'    => 'Medium Shirt',
                        'large'   => 'Large Shirt',
                        'xlarge' => 'Extra Large Shirt',
                      );
      
      $array = array('','');
      echo form_dropdown('shirts',$options, $array);
      

      此代码有效,但不是最优雅的。

      更新:

      这个更好,一开始不记得了!

      echo form_multiselect('shirts',$options,'','');
      

      输出:

      <select name="shirts" multiple="multiple">
      <option value="small">Small Shirt</option>
      <option value="med">Medium Shirt</option>
      <option value="large">Large Shirt</option>
      <option value="xlarge">Extra Large Shirt</option>
      </select>
      

      【讨论】:

      • @KanishkaPanamaldeniya 请查看我的更新答案以获得更好的方法
      【解决方案3】:

      我尝试了所有解决方案,但没有人与我合作 我试过(来自助手的form_dropdown) 我也尝试过使用multiple=“multiple”的普通方式

      这是 codeigniter 的常见问题吗?

      更新 错误是任何人都忘记在 html 属性中命名为数组 cars[]

      <select **name="cars[]"** multiple="multiple">
        <option value="volvo">Volvo</option>
        <option value="saab">Saab</option>
        <option value="opel">Opel</option>
        <option value="audi">Audi</option>
      </select>
      

      这总是很好。

      【讨论】:

        【解决方案4】:

        旧版本的 codeigniter 没有form_multiselect()。 下一个代码应该可以工作

        $array = array();
        echo form_dropdown('shirts', $substore_details, $array, 'multiple'); 
        

        【讨论】:

          【解决方案5】:
          $options = array(
            'small'  => 'Small Shirt',
            'med'    => 'Medium Shirt',
            'large'   => 'Large Shirt',
            'xlarge' => 'Extra Large Shirt',
          );    
          echo form_dropdown('shirts[]',$options);
          

          【讨论】:

          • 你能解释一下这段代码吗?你改变了什么,为什么?此外,这个问题已有七年多的历史了,并且已经有了一些答案,所以你应该解释是什么让你的问题与众不同
          【解决方案6】:

          我们有一个 one 数组,我们想在多重选择器中显示这个数组的选定值

          $show_selected = array("USA", "Poland", "Japan");
          

          为此,我使用 in_array 在选择器中显示选定的值

          <select class="form-control js-example-basic-multiple" multiple="multiple">
            <option value="" disabled selected>Choose your country</option>
            <option <?php if(in_array(1,$show_selected)) echo "selected";?>  value="1">USA</option>
            <option <?php if(in_array(2,$show_selected)) echo "selected";?> value="2">Germany</option>
            <option <?php if(in_array(3,$show_selected)) echo "selected";?> value="3">France</option>
            <option <?php if(in_array(4,$show_selected)) echo "selected";?>  value="4">Poland</option>
            <option <?php if(in_array(5,$show_selected)) echo "selected";?> value="5">Japan</option>
          </select>
          <button class="btn-save btn btn-primary btn-sm">Save</button>
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-11-19
            • 2015-05-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多