簡體   English   中英

lravel動態添加輸入字段並保存數據到數據庫

[英]Dynamically add input fields and save data to Database in lravel

我想將多個數據保存到數據庫中,在不同的列中具有自動遞增的 id,每個數據都有一個唯一的鍵。 用戶可以動態添加輸入字段,最后點擊提交按鈕將數據保存在數據庫中,每個字段都有不同的 id(自動遞增 id)。

我的 js 代碼 ID

    <script>
  $(document).ready(function(){
    $('#add').click(function(){
        var inp = $('#box');
        var i = $('input').size() + 1;
          $('<div id="box' + i +'"><input type="text" id="name" class="name" name="tagName' + i +'" placeholder="Input '+i+'"/><img src="<?php echo '../../uploads/remove.png'?>" width="32" height="32" border="0" align="top" class="add" id="remove" /> </div>').appendTo(inp);
        i++;
    });
    $('body').on('click','#remove',function(){

        $(this).parent('div').remove(); 
    });    
});
</script>

表格插入數據

<div class="row-fluid">
   <div class="span6">
     <div class="control-group">
         <label class="control-label">Add Tags<span class="required"></span></label>
           <div class="controls">
              <div id="box">        
                 <input type="hidden" name="_token" value="{{csrf_token()}}">
                  <input type="text" name="tagName[]" id="name" class="m-wrap span12" placeholder="Input Tags" 
                                                  value="">  
                     <a href="#" class="btn blue" id="add">Add More</a>
              </div>
            </div>
          </div>
        </div>
      </div>

控制器功能:

 foreach( Input::get('tagName') as $name) {       
                    $objectTagProduct = new TagModel;
                    $objectTagProduct ->name = $name;
                    $objectTagProduct->save();
            }

我最初只能插入第一個數據,現在 **

我收到為 foreach() 提供的無效參數

** 錯誤。 提前致謝。

我認為問題出在這里:

 $('<div id="box' + i +'"><input type="text" id="name" class="name" name="tagName' + i +'"...
                                                                                 ^^^^^^^^^

如果要將tagName作為數組獲取,則必須使用括號:

 $('<div id="box' + i +'"><input type="text" id="name" class="name" name="tagName[]"...

您可以嘗試通過以下方式保存。

$data[] = Input::get('tagName');

打印$data並檢查記錄是否到達,然后以下面的方式保存。

foreach($data  as $name) {       
   $objectTagProduct = new TagModel;
   $objectTagProduct ->name = $name;
   $objectTagProduct->save();
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM