2015-10-07 152 views
3

基本上,這節省了新的紀錄對我的數據庫,當我做什麼用eloqouent(參見下圖)多個記錄插入與動態創建的輸入字段

$item = new item(); 
$item->name = $request->name; 
$item->description = $request->description; 
$item->rating = $request->rating; 
$item->save(); 

,但我碰到你們在那裏輸入字段動態創建的,因此這種情況下我對於

$(document).on("click", "#create_input", function(){ 
    $("form fieldset").append('<input type="text" name="name" value="" /><input type="text" name="description" value="" /><input type="text" name="rating" value="" />'); 
}); 

腳本和我的默認形式是(參見下圖)

<button id="#create_input">Create new field</button> 
<form action="{{ url('/item/add') }}" method="post"> 
    <input type="hidden" name="_token" value="{{ csrf_token() }}"> 
    <fieldset> 
     <input type="text" name="name" value="" /> 
     <input type="text" name="description" value="" /> 
     <input type="text" name="rating" value="" /> 
    </fieldset> 
    <button>Save</button> 
</form> 

所以如果用戶點擊按鈕「創建新字段」,另外的輸入字段(名稱,描述,評級)將被添加到表格字段集中。

那麼我怎樣才能保存它像保存2條記錄在同一時間(假設我有2套fieldname的名稱,描述,評級)?取決於當前呈現給表單的字段的數量,然後還有插入的數量,例如,我有4個評分,描述,評分字段,然後插入4條記錄。任何想法,幫助?

+0

使用輸入的數組。並使用循環。 –

+0

所以你可以發佈一個參考或樣品嗎? –

回答

1

只需將[]與輸入字段的名稱name="discription[]"在您的窗體以及在JavaScript點擊事件處理程序。

然後在節省部分只使用循環

$c = count($request->name[]); 
for($i=0;$i<$c;$i++){ 
    $item = new item(); 
    $item->name = $request->name[$i]; 
    $item->description = $request->description[$i]; 
    $item->rating = $request->rating[$i]; 
    $item->save(); 
} 
+0

不幸的是我得到這個錯誤嘗試你的代碼後不能使用[]讀取 –

+0

你試過'var_dump($ c);'''var_dump($ request-> name);'?他們的輸出是什麼? –

+0

更新時是否也能工作? –

2

使用輸入數組。並使用循環。定義字段,如 -

<fieldset> 
    <input type="text" name="name[]" value="" /> 
    <input type="text" name="description[]" value="" /> 
    <input type="text" name="rating[]" value="" /> 
</fieldset> 

的jQuery -

$(document).on("click", "#create_input", function(){ 
    $("form fieldset").append('<input type="text" name="name[]" value="" /><input type="text" name="description[]" value="" /><input type="text" name="rating[]" value="" />'); 
}); 

當表單被提交,你會得到的值類似 -

array(
    name -> array(
       0 -> 'aaa', 
       1 -> 'bbb', 
       2 -> 'ccc', 
      ) 
    description -> array(
       0 -> 'aaa', 
       1 -> 'bbb', 
       2 -> 'ccc', 
      ) 
........... 
) 

然後你就可以通過他們循環,並將它們保存因此。

+0

任何示例或參考如何做循環請? –

相關問題