首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >laravel插入多个输入

laravel插入多个输入
EN

Stack Overflow用户
提问于 2015-12-29 13:41:07
回答 1查看 583关注 0票数 0

我有问题在拉拉5.1插入一个多输入介绍DB。

我为多个输入构建了一个查询代码,然后将它们发送到控制器,但有一个问题要将其插入DB。

如果结果如下所示,我如何将输入插入db:

代码语言:javascript
复制
{"_token":"C6m83bcZKaQsOtRiYEKxJAzzZjvdLerl9QpsvSSs","client_id":["aJQsijwqFVG9r0","aJQsijwqFVG9r0"],"short":["4","11"],"url":["567567567567","3453434534"]}

守则:

HTML:

代码语言:javascript
复制
                 <form class="js-validation-material form-horizontal push-10-t" action="{!! url() !!}/addreg" method="post">
                                {!! csrf_field() !!}
                                <div class="form-group">
                                    <div id="buildyourform"></div>
                                </div>
                                <div class="form-group">
                                    <div class="col-xs-12">
                                        <button class="btn btn-sm btn-primary" type="submit">Submit</button>
                                    </div>
                                </div> 
                </form>
                <script>
                $(document).ready(function() {
                $("#add").click(function() {
                    var intId = $("#buildyourform div.form").length + 1;
                    var fieldWrapper = $("<div class=\"form col-sm-6 col-lg-6\" id=\"field" + intId + "\"><div class=\"form-material\">");
                    var client_id = $("<input type=\"hidden\" name=\"client_id[]\" value=\"{!! $task->client_id !!}\" class=\"form-control\" />");
                    var langname = $("<select type=\"text\" name=\"short[]\" class=\"form-control\">{!! $data['langs'] !!}</select>");
                    var url = $("<input type=\"text\" name=\"url[]\" class=\"form-control\" placeholder=\"Insert a url..\" />");
                    var label = ("<label for=\"date\"><h3 class=\"block-title\">Lang" + intId + "</h3></label>");
                    var removeButton = $("<button class=\"btn btn-danger  btn-xs push-5-r push-10\" type=\"button\"><i class=\"fa fa-times\"></i></button>");
                    removeButton.click(function() {
                        $(this).parent().remove();
                    });

                    $("#buildyourform").append(fieldWrapper);
                    $("#field" + intId + " .form-material").append(client_id,langname,url,removeButton,label);

                });
            });
           </script>

结果必须在DB中,例如:

代码语言:javascript
复制
    DB::table('table')->insert([
        ['client_id' => $request->client_id],
        ['short' => $request->short],
        ['url' => $request->url],
    ]); 

对于每个输入。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-29 13:58:27

问题是,您要发送同名的倍数输入,所以它只能得到最后一个输入。

每次您这样做并“添加”时,尝试将它们用类包装在div中(例如:"foo")。所以你会得到一些"foo“div。

创建一个名为“项”的隐藏输入

代码语言:javascript
复制
{{ Form::hidden('items') }}

接下来,您必须覆盖submit按钮的单击函数:

代码语言:javascript
复制
$('#submit-form').click(function(e){
    a = {};
    $.each($('.foo'), function(k,v){
        a[k] = $(v).find(':input').serializeArray()
    });
    $('input[name="items"]').val(JSON.stringify(a));
    $('#form').submit()
}

在主计长中:

代码语言:javascript
复制
$items = json_decode(Input::get('items'), true);    

然后,您就有了一个包含所有输入的数组。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34512303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档