2014-01-14 103 views
3

我想在我的數組內的一個值,在一個foreach中回顯「selected」。如果表單爲假,且我的客戶已在我的選擇中輸入特定值,請將其退回,以免再次填充!這就是我想要做的...如何把一個特定的選項放在foreach循環中

<?php 
$marques = array('Word','Word1','Word20','Word46','Word9797'); 
     foreach ($marques as $marque => $value) 
     { 
     if (isset($_POST['marque']) && $_POST['marque'] == $value[$_POST['marque']]) { 
      echo '<option value="'.$_POST["marque"].'">'.$value[$_POST["marque"]].'</option>'; 
     } 
      echo '<option value="'.$marque.'">'.$value.'</option>'; 
     } 
?> 

回答

2
<?php 
$marques = array('Word', 'Word1', 'Word20', 'Word46', 'Word9797'); 

foreach ($marques as $marque) 
    echo '<option value="'.$marque.'" '.(($marque == $_POST['marque']) ? 'selected' : '').'>'.$marque.'</option>'; 
?> 
+0

「和」有一些錯誤,但是謝謝!這是行之有效的:) – user3038607

0
<?php 
$marques = array('Word','Word1','Word20','Word46','Word9797'); 
     foreach ($marques as $marque) 
     { 
     if (isset($_POST['marque']) && $_POST['marque'] == $marque') 
      echo '<option value="'.$marque.'" selected>'.$marque.'</option>'; 

     else 
      echo '<option value="'.$marque.'">'.$marque.'</option>'; 
     } 
    ?> 

你的數組是一個維,你不能使用「=>」 對於選擇選項,您必須在選項標籤處添加「選定」屬性

1

您的意思是?

<?php 
    $marques = array('Word','Word1','Word20','Word46','Word9797'); 

    foreach ($marques as $marque => $value) { 
     $setItSelected = ''; 
     if (isset($_POST['marque']) && $_POST['marque'] == $marque) { 
      $setItSelected = 'selected'; 
     } 

     echo '<option value="'.$marque.'" '.$setItSelected.'>'.$value.'</option>'; 
    } 
?> 
+0

偉大的工作!那正是我所期待的。非常簡單,乾淨,漂亮。謝謝! – user3038607

+0

其實,有一個錯誤。如果在此選擇爲空時按下提交按鈕,它將放置第一個而不是空白選項。 – user3038607

+0

這不是錯誤。我剛剛更改了代碼,以便在通過POST參數收到數組時將選擇選項更改爲選定狀態。 –

相關問題