2013-03-27 76 views
0

我有一個看起來像這樣的應用程序:多個輸入插入

enter image description here

正如你所看到的,每一行都包含任何一組標題(其中有剛剛輸入的行),或成分形式(其中有一個小輸入,然後是一個選擇,然後是另一個更大的輸入)。

我使用Javascript來添加新的跨度。我使用以下PHP將每個成分跨度分組到數組中,確定順序(因爲每個跨度可以移動到不同的順序),並插入到我的數據庫中。

foreach($_POST as $key => $value) { 
     $value = $this->input->post($key); 
     $ingredientQTY = $this->input->post('ingredientQTY'); 
     $measurements = $this->input->post('measurements'); 
     $ingredientNAME = $this->input->post('ingredientNAME'); 
     $ingredientsROW[] = array($ingredientQTY, $measurements, $ingredientNAME); 

     for ($i = 0, $count = count($ingredientQTY); $i < $count; $i++) { 
      $rows[] = array(
       'ingredientamount'  => $ingredientQTY[$i], 
       'ingredientType'  => $measurements[$i], 
       'ingredientname'  => $ingredientNAME[$i], 
       'recipe_id'    => $recipe_id, 
       'order'     => $i + 1, 
       'user_id'    => $user_id 
      ); 
      $sql = "INSERT `ingredients` (`ingredientamount`,`ingredientType`,`ingredientname`, `recipe_id`, `order`, `user_id`) VALUES "; 
      $coma = ''; 
      foreach ($rows as $oneRow) { 
       $sql .= $coma."('".implode("','",$oneRow)."')"; 
       $coma = ', '; 
      } 

     } 
     $this->db->query($sql); 
     break; 
} 

這可以工作奇蹟插入配料行。但我不知道如何插入組標題(必須放置在for循環中以保持訂單,即$ i + 1)。

我想我已經想通了兩種解決方案(雖然可能有其他人,而這些可能甚至不工作):

  1. 有組標題輸入字段具有相同的名稱值的一個成分文本字段,併發送一個隱藏的值,並說它的一個組標題?

  2. 發送它作爲不同的輸入字段與不同的名稱值?

我的問題是:我如何用我當前的代碼做到這一點,並且是這些有效的解決方案之一,還是有更好的解決方案?

感謝您的幫助!如果你需要更多的細節,請問!

回答

1

您可以使用空標題,如<input type="hidden" name="groupheading[]" value="product" />和開放的標題,如<input type="text" name="groupheading[]" value="" />。第一個應該在產品範圍內。

這樣,您可以繼續循環,就像現在一樣。而$ _POST ['groupheading'] [$ key]或者返回一個組標題或者'product'這個短語。所以,在你的腳本這將是:

if($_POST['groupheading'][$key] == "product") { 
    // insert product 
} else { 
    // insert group heading 
} 

我想我今天早上還是昨天幫你一個答案..它仍然是一個有點您正在使用,以獲得您所需要的效果一個奇怪的方式。它可以實現更容易。

+0

感謝您的回答! 「你可以更輕鬆地達到什麼意思」? – Muhambi 2013-03-27 23:55:30

+2

好吧,似乎你的表單使用的設置(HTML部分)可以結合更簡單的代碼來實現你正在嘗試做的事情。這與這個問題無關,可能只是我個人對我解決編程問題的看法:) – 2013-03-27 23:57:08

+0

我在PHP方面很新,所以如果有更好的方法,我很樂意聽到它! – Muhambi 2013-03-27 23:58:55