添加来自yajra数据表laravel的表单输入数据



我想从数据表数据中进行表单输入。我尝试按照数据表中的链接:https://datatables.net/examples/api/form.html

但是我的程序没有正确运行(我得到了GEThttp://127.0.0.1:8000/claim/addClaimDetail/13?qty%5B%5D=&计费%5B%5D=&排除%5B%5D=&按比例分配%5B%5D=&数量%5B%5D=&计费%5B%5D=&排除%5B%5D=&按比例分配%5B%5D=&数量%5B%5D=&计费%5B%5D=&排除%5B%5D=&按比例分配%5B%5D=&数量%5B%5D=&计费%5B%5D=&排除%5B%5D=&按比例分配%5B%5D=&数量%5B%5D=8&计费%5B%5D=8&排除%5B%5D=8&按比例分配%5B%5D=8 405(不允许使用此方法(

为什么我会出现这个错误,因为我必须为这个方法添加路由(post(,并且我必须让这个按钮有post方法?

叶片式

<form method="post">
@csrf
@method('POST')
<table width="100%" id="claimAddDetailTable"
class="table table-bordered table-striped claim-add-detail-table">
<thead>
<tr>
<th>{{ __('Benefit ID') }}</th>
<th>{{ __('Benefit') }}</th>
<th>{{ __('Start Date') }}</th>
<th>{{ __('End Date') }}</th>
<th>{{ __('Qty') }}</th>
<th>{{ __('Billed') }}</th>
<th>{{ __('Exclude') }}</th>
<th>{{ __('Prorate') }}</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
<input type="button" class="btn btn-success" id="submit_addclaimdetail"
value="Save">
</form>

ajax处理

$(function() {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
const url = window.location.href;
const lastSegment = url.split("/").pop();
console.log(lastSegment);
// Data table
var table_addclaimdetail = $('.claim-add-detail-table').DataTable({
processing: true,
serverSide: true,
responsive: true,
ajax: "/claim/claimAddDetail/" + lastSegment,
dom: '<"top"fB>rt<"bottom"lip><"clear">',
columns: [{
data: 'benefitID',
name: 'benefitID'
},
{
data: 'name',
name: 'name'
},
{
data: 'p_date',
name: 'p_date'
},
{
data: 'pp_date',
name: 'pp_date'
},
{
data: 'qty',
name: 'qty'
},
{
data: 'billed',
name: 'billed'
},
{
data: 'exclude',
name: 'exclude'
},
{
data: 'prorate',
name: 'prorate'
},
],
"lengthMenu": [
[10, 25, 50, -1],
[10, 25, 50, "All"]
],
});
// start submit add claim detail
$('#submit_addclaimdetail').click(function() {
var data = table_addclaimdetail.$('input').serialize();

// Submit form data via Ajax
$.ajax({
url: '/claim/addClaimDetail/{{ $claim->cno }}',
data: data,
success: function(data) {
console.log('Server response', data);
}
});
// alert(
//     "The following data would have been submitted to the server: nn" +
//     data.substr(0, 120) + '...'
// );
// return false;
});
});

路线

Route::post('/claim/addClaimDetail/{cno}', [ClaimDetailController::class, 'storeClaimDetail']);

您应该添加方法:"POST";当您通过Ajax提交表单数据时。

$.ajax({
url: '/claim/addClaimDetail/{{ $claim->cno }}',
method: 'POST',
data: data,
success: function(data) {
console.log('Server response', data);
}
});

最新更新