我想製作關於食譜的程序。如果用戶希望並且在相同的情況下他也可以移除這些區域,則用戶必須能夠添加更多的配料。如何使用PHP從動態增加的表單字段中將信息保存到數據庫?
我在想什麼我會命名多個字段,我將如何能夠獲取值並將它們插入到數據庫中?
任何幫助表示讚賞。提前致謝。
我想製作關於食譜的程序。如果用戶希望並且在相同的情況下他也可以移除這些區域,則用戶必須能夠添加更多的配料。如何使用PHP從動態增加的表單字段中將信息保存到數據庫?
我在想什麼我會命名多個字段,我將如何能夠獲取值並將它們插入到數據庫中?
任何幫助表示讚賞。提前致謝。
使用方括號在HTML的字段名的結尾,他們將出現在PHP作爲數組:
<input type="text" name="ingredients[]" value="Chicken" />
<input type="text" name="ingredients[]" value="Mushroom" />
<input type="text" name="ingredients[]" value="Cream" />
這一操作將提供一個請求變量(假設你使用POST對於這種情況)所以該請求陣列(即$ _ POST)似乎PHP(也就是說,如果你撥打的var_dump)爲:
array(1) {
["ingredients"]=>
array(3) {
[0]=>
string(7) "Chicken"
[1]=>
string(8) "Mushroom"
[2]=>
string(5) "Cream"
}
}
我假設你有一個表,你的應用程序數據庫來存儲配方細節,如配方名稱,照片等等。此表中的每個條目也都有一個名爲RecipeId的主鍵。
由於配方可以有多種成分,因此這裏有一對多關係。所以你必須創建另一個表格來存儲配料詳細信息和外鍵RecipeId。
現在使用相應的RecipeId將配料詳細信息插入到此新表中。
如果您認爲食譜中可能有多個方向或烹飪說明,也適用於方向和烹飪說明。
希望這可以幫助你。
實現:
在您已經添加所需的HTML和JavaScript來添加多個條目的客戶端。
您可以將配料數組對象發送到您的php頁面。
E.g
$.ajax({
url: "CreateRecipe.php",
data: { recipeName: "myRecipe",
ingredients: [ { name: "", amount: "", unit: "" },
{ name: "", amount: "", unit: "" } ],
directions: "",
cookingInstructions: "" }
success: function(){ }
});
這是我的db香卡http://stoccey.net/demo/images/db。png 我不是javascript和jquery的專家。但是我喜歡你的想法,也許如果它不打擾你,你可以一步一步地走過它嗎?因爲我覺得它太複雜了。 – Jag
你可以有至少五列(ID,名稱,配料,方向,指令)做這樣的任務。當你以一種明顯的方式保存id和name時,對於其餘三列,你需要將它保存爲序列化數組。所以,當你想爲那三列的每個部分,像這樣你可以有很多領域..
<input name="ingredients[]" ... />
<input name="ingredients[]" ... />
<input name="ingredients[]" ... />
和另外兩個字段,然後將其轉移到一個序列化的數據,你將它保存爲一個列值
前// You can do this before save the value into your database
$ingredients = serialize($_POST['ingredients']);
// While you retrieve the value from your database, unserialize it to get your array back
$ingredients = unserialize($row['ingredients']);
你好,我會檢查一下。 – Jag
名稱表單字段'名稱=「成分[]」'作爲手動http://www.php.net/manual/en/faq.html.php#faq.html.arrays – mario