PHP订单表格,重新填充“选中”下拉列表

时间:2011-05-10 10:17:36

标签: php html arrays foreach

希望标题能够真正描述这个问题。

通过3个步骤获得表单,用户可以从步骤2转到步骤1,以更改详细信息。

到目前为止,除了多个选择下拉列表外,每个输入都完全重新填充。

我一直在尝试使用数组的switch()内的foreach(),但它似乎在第一种情况下匹配时停止。我已将break;更改为continue;,但存在相同的行为。

数组从2开始合并,$key为项目编号,$value为项目值。

$valueforeach()完美输出一次。

有人有任何想法吗?

    foreach($combined as $key => $value) {
           //firstload is only valid on first load
                  if($value != firstload) {

                    switch($value){
                    case "1":
                       $selected0 = "selected=\"selected\"";
                       break;
                    case "5.00":
                       $selected1 = "selected=\"selected\"";
                       break;
                    case "10.00":
                       $selected2 = "selected=\"selected\"";
                       break;
                    case "45.00":
                       $selected3 = "selected=\"selected\"";
                       break;
                    case "85.00":
                       $selected4 = "selected=\"selected\"";
                       break;
                                        }

然后HTML选择选项<option value="5.00" $selected1">等。

当switch与case匹配时,它会匹配每个foreach的情况。

1 个答案:

答案 0 :(得分:1)

我不确定这是否可以帮助你,没有代码可以解决 - 但这是一个你可以根据自己的需要重写的想法。

<select name="mySelect" multiple="multiple">
<?php
    // Could come from sessions or POST data
    $selected_array = array("1", "10.00", "85.00");

    // Could come from database or something else
    $multiple_select_values = array("1", "5.00", "10.00", "45.00", "85.00");

    foreach($multiple_select_values as $value) {
        $selected = "";
        if(in_array($value, $selected_array))
            $selected = " selected=\"selected\"";

        echo '<option value="'. $value . '"' . $selected. '>' . $value .'</option>';
    }
?>
</select>