我在视图中附加了自定义表单,当我向控制器发送数据时,不能获得超过1个表单数据,我需要发送数据数组。
这是我当前发送的:
array:7 [
"_token" => "ZMyuEaT3SJpdwo7toCUA95zNxjSfzDn9G6xSm7G0"
"title" => "ujykuyl"
"type" => "color"
"vals" => "fgj"
"sku" => "gj"
"price" => "47"
"color" => "547457"
]
这应该是这样的:
array:7 [▼
"_token" => "ZMyuEaT3SJpdwo7toCUA95zNxjSfzDn9G6xSm7G0"
"title" => "ujykuyl"
"type" => "color"
"vals" => array:2 [▼
0 => "fgj"
1 => "hstghtrh"
]
"sku" => array:2 [▼
0 => "gj"
1 => "36457"
]
"price" => array:2 [▼
0 => "47"
1 => "676484"
]
"color" => array:2 [▼
0 => "547457"
1 => "537637"
]
]
所有部分均在下面的代码中注释,因此您可以了解每个部分 部分可以。
<div id="buildyourformaddtitl">
// title
<div class="col-md-4 mt-20">
{{Form::label('opttitle', 'Group Title')}}
{{Form::text('opttitle', null, array('class' => 'form-control'))}}
</div>
// group type
<div class="col-md-4 mt-20">
{{Form::label('opttype', 'Group Type')}}
<select name="opttype" id="opttype" class="form-control">
<option value="">-- Select --</option>
<option value="dropdown">DropDown</option>
<option value="radio">Radio</option>
<option value="color">Color/Texture</option>
</select>
</div>
</div>
<div class="col-md-4 mt-20">
{{Form::label('addtitl', 'Add Values')}}
<br>
//adding value inputs to view (unlimited)
//PS: this values must be send as array
<input type="button" value="Add values" class="btn btn-success addtitl" id="addtitl" />
//saving data
<button type="button" class="optsave btn btn-danger">
Save
</button>
</div>
JavaScript
注意:我已经通过在每个数据中添加
[]
来使该数据成为数组 字段名称。唯一的问题是通过JavaScript获得所有这些对象。 (当前我的JS代码仅排在第一行)
<script>
$(function(){
// add values to view (unlimetd)
$("#addtitl").click(function() {
var lastField = $("#buildyourformaddtitl div:last");
var intId = (lastField && lastField.length && lastField.data("idx") + 1) || 1;
var fieldWrapper = $("<div class=\"col-md-8 mt-20\" id=\"field" + intId + "\"/>");
fieldWrapper.data("idx", intId);
var fName = $("<label for=\"optvals\">Value</label><input type=\"text\" name=\"optvals[]\" class=\"form-control optvals\" />");
var fSku = $("<label for=\"optsku\">SKU</label><input type=\"text\" name=\"optsku[]\" class=\"form-control optsku\" />");
var fPrice = $("<label for=\"optprice\">Price</label><input type=\"text\" name=\"optprice[]\" class=\"form-control optprice\" />");
var fColor = $("<label for=\"optcolor\">Color</label><input type=\"text\" name=\"optcolor[]\" class=\"form-control optcolor\" />");
var removeButton = $("<button type=\"button\" class=\"btn btn-danger\"><i class=\"fa fa-minus\"></i></button>");
removeButton.click(function() {
$(this).parent().remove();
});
fieldWrapper.append(fName);
fieldWrapper.append(fSku);
fieldWrapper.append(fPrice);
fieldWrapper.append(fColor);
fieldWrapper.append(removeButton);
$("#buildyourformaddtitl").append(fieldWrapper);
});
// send data to controller
$(".optsave").on("click", function(e){
e.preventDefault();
var form = $(this).closest('form');
$.ajax({
type: "post",
url: "{{ url('admin/optionsStoreAjax') }}",
data: {
'_token': $('input[name=_token]').val(),
'title': $(this).closest('form').find('#opttitle').val(),
'type': $(this).closest('form').find('#opttype').val(),
'vals': $(this).closest('form').find('.optvals').val(),
'sku': $(this).closest('form').find('.optsku').val(),
'price': $(this).closest('form').find('.optprice').val(),
'color': $(this).closest('form').find('.optcolor').val(),
},
success: function (data) {
alert(data);
},
error: function (data) {
console.log('Error!', data);
}
});
});
//end sending data
});
</script>
如何获取所有附加字段的数组?
答案 0 :(得分:0)
您可以使用JQuery映射函数按以下方式进行操作,
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl