2017-08-30 46 views
0

我有一個(咖啡)形式,它包含60個select標記,且每個select標籤具有16 options包含數字從0到15 這樣的:環路在PHP和HTML形式選擇陣列

<label><select name="item[0][breakfast_blend]"> 
           <option value="0">0</option> 
           <option value="1">1</option> 
           <option value="2">2</option> 
           <option value="3">3</option> 
           <option value="4">4</option> 
           <option value="5">5</option> 
           <option value="6">6</option> 
           <option value="7">7</option> 
           <option value="8">8</option> 
           <option value="9">9</option> 
           <option value="10">10</option> 
           <option value="11">11</option> 
           <option value="12">12</option> 
           <option value="13">13</option> 
           <option value="14">14</option> 
           <option value="15">15</option> 
</select>Breakfast Blend</label> 
<label><select name="item[1][tea]"> 
           <option value="0">0</option> 
           <option value="1">1</option> 
           <option value="2">2</option> 
           <option value="3">3</option> 
           <option value="4">4</option> 
           <option value="5">5</option> 
           <option value="6">6</option> 
           <option value="7">7</option> 
           <option value="8">8</option> 
           <option value="9">9</option> 
           <option value="10">10</option> 
           <option value="11">11</option> 
           <option value="12">12</option> 
           <option value="13">13</option> 
           <option value="14">14</option> 
           <option value="15">15</option> 
</select>Tea</label> 

還有其他60種選擇與其他標籤一樣。

現在我正在嘗試設置的條件進行檢查,看哪些項目是由用戶選擇,然後採取選項的價值和選擇的標籤

所以我創建if條件來檢查所選項目的值,但我不知道如何獲得該項目的標籤(我的意思是我不知道如何將其包含在循環中)。 這是我在PHP代碼部分:

for ($i = 1; $i <= count($_POST['item']); $i++) { 
    if (isset($_POST['item'][$i])) { 
     echo $_POST['item'][$i]; 
    } 
} 

我的一些朋友告訴Foreach功能可以幫助但我仍然不知道如何:/

任何幫助遏制循環中的標籤

+2

爲什麼你把他們都1個陣列?如果你給他們每一個獨特的名字,對你來說會容易得多。 – GrumpyCrouton

+1

標籤值不會回發到服務器。您的服務器需要根據名稱屬性理解人類可讀描述應該是什麼。要麼你必須對它進行硬編碼,要麼你可以使用某種查找表。 – ADyson

+0

@GrumpyCrouton然後我應該如何在循環中使用它? @ _ @ –

回答

1

你可以做這樣的事情

for ($i = 1; $i <= count($_POST['item']); $i++) { 
if (isset($_POST['item'][$i])) { 
    foreach($_POST['item'][$i] as $cle => $value){ 
    $label = ucwords(str_replace("_"," ",$cle)); 
    $item = $value; 
    echo $label." ".$item; 
    } 
} 
} 
+0

感謝您的回答我會嘗試的最佳方式 –

1

取下名字早餐交融,茶,如果你有它,你必須呼應項的值[0] [breakfast_blend現在在你的代碼是呼應項[0],它不會給你的價值

<select name="item[0]"> 
<select name="item[1]"> 
+0

所以我怎麼能得到所選項目的每個'標籤'?關鍵是,我想給它發一封電子郵件。 –

+1

在你的PHP創建數組持有標籤索引的名稱0是breakfast_blend和索引1是茶等 – Osama

+0

好,謝謝,我認爲這是@Osama –