使用动态创建的输入字段插入多个记录

时间:2015-10-07 05:14:44

标签: javascript php jquery laravel laravel-5

基本上这就是我在将新记录保存到我的数据库时使用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套名称,描述,评级的字段集)?取决于当前存在于表格中的字段数量,还取决于插入的数量,例如我有4个等级,描述,评级的字段集,然后将插入4个记录。任何想法,帮助?

2 个答案:

答案 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',
           )
...........
)

然后你可以遍历它们并相应地保存它们。

答案 1 :(得分:1)

只需将mv /path/to/targetFile /path/to/destinationFolder与输入字段的名称放在一起,例如您的表单中的[]以及javascript点击事件处理程序。

然后在保存部分中使用循环

name="discription[]"
相关问题