2011-05-10 36 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