如何使用选定的选项codeigniter创建一个多选框

时间:2011-10-19 11:59:39

标签: php codeigniter validation codeigniter-form-helper

您正在使用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); 

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

6 个答案:

答案 0 :(得分:8)

您应该使用form_multiselect()帮助程序。

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

echo form_multiselect('shirts', $options);

答案 1 :(得分:1)

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

$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>

答案 2 :(得分:1)

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

是codeigniter的常见问题吗?

<强>更新 错误是任何人都忘记在html属性中将其命名为array 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>

这总是很好。

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

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

答案 5 :(得分:0)

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

$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>