如何在循环访问php数组时设置所选项目

时间:2011-04-17 08:50:47

标签: php arrays foreach

我有一个html下拉框。然后我使用数组来填充其中的项目。 每个循环中的键只是0到9之间的数字。我现在的问题是如何控制显示为默认选项的内容:

<?php foreach($cat_r as $k=>$c){ ?>
<option name="<?php echo $k + 1; ?>" value="<?php echo $k + 1; ?>" selected="<?php if($k==1){ echo "selected"; } ?>"><?php echo $k + 1; ?></option>
<?php } ?>

在此代码中,您可以看到我正在尝试将第二项作为默认选项。 但似乎我总是带到最后一个数组项目,无论我输入什么数字作为条件。

4 个答案:

答案 0 :(得分:2)

<?php foreach($cat_r as $k=>$c){ ?>
    <option name="<?php echo $k + 1; ?>" value="<?php echo $k + 1; ?>" 
    <?php if($k==1){ echo "selected=\"selected\""; } ?>>
    <?php echo $k + 1; ?>
    </option>
<?php } ?>

答案 1 :(得分:2)

试试这个:

<?php foreach($cat_r as $k=>$c){ ?>
<option value="<?php echo $k + 1; ?>" <?php if($k==1){ echo 'selected="selected"'; } ?>><?php echo $k + 1; ?></option>
<?php } ?>

或者,这种格式也适用

<option value="foo" selected />

答案 2 :(得分:0)

我来到这里是为了找到解决方案来设置用户在选择之前选择的选项,上面的问题是在不同的背景下我最终抓住了这个东西......

foreach($options as $k){
   echo "<option value=".$k." ";
   foreach($selectedoptions as $m){
     if($k==$m)
        echo "selected='selected'";
   }

   echo ">".$k."</option>";
}

答案 3 :(得分:0)

此代码对我有用,谢谢..

foreach($options as $k){
   echo "<option value=".$k." ";
   foreach($selectedoptions as $m){
     if($k==$m)
        echo "selected='selected'";
   }

   echo ">".$k."</option>";
}