如何使用php在带有值数组的下拉列表中选择更多选项?

时间:2013-12-20 11:29:50

标签: php

如何使用php在下拉列表中选择多个数组选项。

输入:

<?php
$val = "22,33,55";
?>
<select name="choice" multiple="true">
<option value="11">11</option>
<option value="22">22</option>
<option value="33">33</option>
<option value="44">44</option>
<option value="55">55</option>
</select>

我希望输出像:

<select name="choice" multiple="true">
<option value="11">11</option>
**<option value="22">22</option>**
**<option value="33">33</option>**
<option value="44">44</option>
**<option value="55">55</option>**
</select>

3 个答案:

答案 0 :(得分:1)

 <?php
$val = "22,33,55";
$valarray = explode(',',$val);
?>


<select name="choice" multiple="true">
<option value="11" >11</option>
**<option value="22" <?php if(in_array(22,$valarray)){ ?>selected="selected"<?php } ?>>22</option>**
**<option value="33" <?php if(in_array(33,$valarray)){ ?>selected="selected"<?php } ?>>33</option>**
<option value="44">44</option>
**<option value="55" <?php if(in_array(55,$valarray)){ ?>selected="selected"<?php } ?>>55</option>**
</select>

答案 1 :(得分:0)

http://www.w3schools.com/tags/att_select_multiple.asp

首先,将$ val更改为数组。然后选择选项使用in_array()(http://www.php.net/in_array)来验证是否需要在给定选项中打印selected =“selected”。

我猜这是最简单的选择

答案 2 :(得分:0)

这是一个解决方案

   <?php 
  $selected_value = "22,33,55";
  $selected_value = explode(',', $selected_value);
  $all_values = array(11,22,33,44,55); ?>
  <select name="choice[]" multiple="multiple"> <?php
  foreach($all_values as $option_value ) { 
    $selected = '';
    if(in_array($option_value, $selected_value)){
      $selected = "selected";
    }?>
    <option <?php echo $selected; ?> ><?php echo $option_value; ?></option><?php
  } ?>
   </selected