我有一個看起來像這樣的應用程序:多個輸入插入
正如你所看到的,每一行都包含任何一組標題(其中有剛剛輸入的行),或成分形式(其中有一個小輸入,然後是一個選擇,然後是另一個更大的輸入)。
我使用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)。
我想我已經想通了兩種解決方案(雖然可能有其他人,而這些可能甚至不工作):
有組標題輸入字段具有相同的名稱值的一個成分文本字段,併發送一個隱藏的值,並說它的一個組標題?
發送它作爲不同的輸入字段與不同的名稱值?
我的問題是:我如何用我當前的代碼做到這一點,並且是這些有效的解決方案之一,還是有更好的解決方案?
感謝您的幫助!如果你需要更多的細節,請問!
感謝您的回答! 「你可以更輕鬆地達到什麼意思」? – Muhambi 2013-03-27 23:55:30
好吧,似乎你的表單使用的設置(HTML部分)可以結合更簡單的代碼來實現你正在嘗試做的事情。這與這個問題無關,可能只是我個人對我解決編程問題的看法:) – 2013-03-27 23:57:08
我在PHP方面很新,所以如果有更好的方法,我很樂意聽到它! – Muhambi 2013-03-27 23:58:55