jquery - 如何将数组发送到控制器使用 ajax?
问题描述
我有一个带有复选框的数据表,以及一个允许通过数组填充表 ITEMS [] 的验证按钮,我想使用 ajax 将此数组发送到我的控制器。请帮忙。
这是我的数据表:
<div id='form2'>
<h3>form group 2</h3>
<h4>DATE : <span id="dateE"></span></h4>
<h4>chantier : <span id="ch"></span></h4>
<div class="form-group col-md-offset-5 ">
<button class="btn btn-success add-all" type="submit" id="hide">Pointage</button>
</div>
<table class="table table-bordered" id="mytable">
<tr>
<th>Archive</th>
<th><input type="checkbox" id="check_all"></th>
<th>S.No.</th>
<th>matricule</th>
<th>nom & prenom</th>
<th>salaire net</th>
<th>nbre de jour </th>
<th>prime</th>
</tr>
@if($salaries->count())
@foreach($salaries as $key => $salarie)
<tr id="tr_{{$salarie->id}}">
<td>archive</td>
<td><input type="checkbox" class="checkbox" data-id="{{$salarie->id}}"></td>
<td>{{ ++$key }}</td>
<td>{{ $salarie->matricule }}</td>
<td >{{ $salarie->nom }} {{ $salarie->prenom }}</td>
<td>
<input type="hidden" name="salaire" value="{{ $salarie->salairenet }}">
{{ $salarie->salairenet }}
</td>
<td ><input type="text" class='input2' name="nbreJ" class="form-control" ></td>
<td><input type="text" name="prime" class="form-control" value="0"></td>
</tr>
@endforeach
@endif
</table>
</div>
这是我的代码jQuery:
$('.add-all').on('click', function() {
var items = [];
let valu = $('#datePicker').val();
$("tr").each(function(i,r) {
if ( i > 0 && $(r).find("input").first().prop("checked")) {
items.push({"matricule": r.cells[3].innerText, "salaire": r.cells[5].innerText, "date" : valu })
}
});
//ajax
$.ajax({
method : 'POST',
url : 'mois',
data : items,
success : function(data) {
if (!data.success) {
if (data.errors.name) {
$('.throw_error').fadeIn(1000).html(data.errors.name);
}
} else {
$('#success').fadeIn(1000).append('<p>' + data.posted + '</p>');
}
}
});
});
路线:
Route::post('mois', 'SalarieController@addMultiple');
控制器:
public function addMultiple(Request $request)
{
dd($request->all());
}
解决方案
试试这个你忘了传递令牌和json密钥
$.ajax({
method : 'POST',
url : 'mois',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
data : {"items":items}, // pass in json format
success : function(data) {
console.log(data);
},
error : function(err){
console.log(err)
}
});
//fin ajax
});
在你的控制器中
public function addMultiple(Request $request){
return response()->json([
'status'=>200,
'message' => "success",
'data' => $request->all()
]);
}
推荐阅读
- java - 如何限制(队列)针对给定数据库执行的线程数(每个并发测试的单独数据)?
- python - Python Bs4 不能在双跨该死的文本中包含纯文本
- android - Volley 无法与烧瓶服务器连接
- file - 从 Racket 的目录列表中删除隐藏文件
- module - Magento 2.3.4 Setup_Module
- excel - 如何在保留单元格信息的同时将 Excel 文件转换为 CSV?
- regex - 正则表达式允许单词之间有空格(没有特殊字符)但在开头删除空格
- android - 如何从带有动画的容器中删除片段?
- uwp - H264解码性能不佳
- scala - 在 Spark scala 中更新数据框的最佳方法