2011-05-10 39 views
0

希望标题能够真实地描述问题。PHP订单,重新填充“选定”下拉菜单

在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">

当开关的情况相匹配,则接着匹配对于每个的foreach这种情况下。

+0

我们可以看到确切的代码片段吗? – kapa 2011-05-10 10:24:25

+0

你应该发布你的代码 - 只是相关的部分,最好是评论,我相信有人会帮助你 – 2011-05-10 10:25:52

+0

我认为我们需要更多的代码。因为这段代码实际上没有问题,除了缺少结尾的'}',但我会认为这是一个错字。 – ohmusama 2011-05-10 10:38:54

回答

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> 
+0

感谢您这样做,我似乎吮吸解释这个问题。我已经使用'elseif'工作,但它并不漂亮。再次感谢。 – eagleworks 2011-05-10 11:14:22