2010-10-07 20 views
1

我有1頁面顯示一個表格,其中包含動態填充的各種下拉列表。PHP:在新頁面中保留下拉字段

SNIPPIT

<td valign="top"> 
        <select name="status"> 
         <option></option> 

         <?php 
          foreach($statuslst as $status){ 
           echo '<option value=' . $status[0] . '>' . $status[1] . '</option>'; 
          } 
         ?> 
        </select> 
       </td> 

我有一個第2頁也顯示這種形式也從形式的結果。第一種形式是張貼到第二張和第二張張貼到自己。

我希望在發佈到第二個表單時選擇在第一個表單中選擇的項目。

有人可以讓我在正確的方向嗎?

感謝,

Jonesy

回答

1

採取的形式是GET類型,你可以做這樣的事情第二頁:

<?php 
    foreach($statuslst as $status){ 
    $var = ''; 
    if($_GET['status'] == $status['0']){$var = ' selected="selected"';} 
    echo '<option value="' . $status[0] .'"'. $var .'>' . $status[1] . '</option>'; 
    } 
?> 
+0

非常感謝!正是我需要的! – iamjonesy 2010-10-07 14:36:52

+0

非常歡迎。不要忘記驗證並且無效檢查你的變量。 – methode 2010-10-07 14:40:37

0
<?php 
     foreach($statuslst as $status){ 
      echo '<option value="'.$status[0].'"'.(in_array($status[0],$_POST['status']) ? ' selected="selected"' : '').'>'. $status[1].'</option>'; 
     } 
?> 

,我認爲它應該工作。

0

你需要選擇的屬性添加到選項標籤的第二個形式。看看selected option

+0

但我如何設置選擇哪個選項? – iamjonesy 2010-10-07 14:24:44

+0

@jonesy已經發布了一些很好的示例 – 2010-10-07 14:35:01

1

不要忘了檢查的變量存在使用

isset($_GET['status']) 

isset($_GET['status']) 

取決於你使用的是什麼,因爲它不是理想的檢查變量不先做這件事。

例如。 if(isset($ _GET ['status'))& & $ _GET ['status'] == $ status [0]例如

+0

感謝您的提示! – iamjonesy 2010-10-07 14:37:11

+0

沒有問題,否則你可能會在你的日誌中看到一個警告,檢查一個空的var – easyjo 2010-10-07 16:18:11