我有问题在拉拉5.1插入一个多输入介绍DB。
我为多个输入构建了一个查询代码,然后将它们发送到控制器,但有一个问题要将其插入DB。
如果结果如下所示,我如何将输入插入db:
{"_token":"C6m83bcZKaQsOtRiYEKxJAzzZjvdLerl9QpsvSSs","client_id":["aJQsijwqFVG9r0","aJQsijwqFVG9r0"],"short":["4","11"],"url":["567567567567","3453434534"]}守则:
HTML:
<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中,例如:
DB::table('table')->insert([
['client_id' => $request->client_id],
['short' => $request->short],
['url' => $request->url],
]); 对于每个输入。
发布于 2015-12-29 13:58:27
问题是,您要发送同名的倍数输入,所以它只能得到最后一个输入。
每次您这样做并“添加”时,尝试将它们用类包装在div中(例如:"foo")。所以你会得到一些"foo“div。
创建一个名为“项”的隐藏输入
{{ Form::hidden('items') }}接下来,您必须覆盖submit按钮的单击函数:
$('#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()
}在主计长中:
$items = json_decode(Input::get('items'), true); 然后,您就有了一个包含所有输入的数组。
https://stackoverflow.com/questions/34512303
复制相似问题