2013-02-15 51 views
2

這裏有幾個這樣的問題,但我想要做的是循環通過每個選項元素並回顯出來,到目前爲止它只是回顯所選項目,當理想狀態我要循環每個項目。試圖循環通過HTML下拉

<?php 
if (isset($_POST['submit'])) { 
    $st_campaigns = $_POST['campaigns']; 

    foreach ($st_campaigns as $st) { 
     echo $st; 
    } 
} 
?> 

<form action="" method="post"> 
<select name="campaigns[]" id="campaigns[]" size="15" multiple="multiple" style="width:150"> 
<option>item</option> 
<option>item1</option> 
<option>item</option> 
<option>item</option> 
<option>item</option> 
<option>item</option> 
<option>item</option> 
</select> 
<input type="submit" name="submit" /> 
</form> 

回答

3

只有選定的項目與表單數據一起提交。如果你想要所有可能的選擇項目,你將需要把它們放在一個數組中,然後你可以使用該數組來填充/生成選擇字段,以及在表單提交後出於任何原因循環它們。

+0

謝謝你,我基本上想要遍歷每個項目,並且在循環內部,我將根據具有相同名稱的項目列表更新數據庫中的某些信息,因此在我的項目中填充此列表動態。 – user2074139 2013-02-15 02:35:36

+0

這工作完美壽,我打算把我的數據放在一個數組,但我正在靜態測試的東西。 – user2074139 2013-02-15 02:53:21

0

您將需要一種解決方法。

  1. 在名爲窗體中添加一個隱藏字段

  2. 在提交「選項」(例如),使用JavaScript通過項目環和生成的字符串。逗號分隔或JSON可能是更好的選擇。所以所有的選項是否被選中都會在字符串中。

  3. 更改隱藏字段(選項)將JSON字符串

  4. 當表單提交的值,使用PHP讀取$_POST['options'],而不是campaigns,改變JSON數組(或拆分CSV取決於你選擇),然後循環。

您可以隨時循環第一和campaigns然後使用PHP array_key_exists,看是否存在的關鍵還是in_array如果你只是選擇項添加到陣列創建鍵值匹配所選項目。