如何解决jQuery加载的输入未传递到控制器
我制作了一个表单,其中将根据create.blade.php中“计算机”下拉列表的选定值通过ajax加载输入表。
每当我提交表单并使用dd($ request)时,它仅返回以下内容:
array:5 [▼
"_token" => "KRCNWU8jxnT2RSrCrNOuGX9tfdC0TVUWxO3gKVCP"
"machine" => "14"
"breakdowndate" => null
"breakdowntime" => null
"Add" => "Submit"
]
create.blade.php
<div id="add" class="modal fade" role="dialog">
<div class="modal-dialog modal-xl adjust-modal-xl">
<!-- Modal content-->
<div class="modal-content">
<!-- <div class="modal-header text-center">
</div> -->
<div class="modal-body">
<form class="form-horizontal" action="{{url('breakdown/store')}}" method="POST" id="add-form">
{{csrf_field()}}
@if (count($errors->store) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors->store->all() as $error)
<li class="small">{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<div class="form-group row">
<label class="label-control col-lg-2">Machine:</label>
<div class="col-lg-4">
<select name="machine" id="machine" class="form-control chosen-select">
<option value=""></option>
@forelse($machines as $machine)
<option value="{{$machine->id}}">({{$machine->section}}) {{$machine->machine_no}}</option>
@empty
@endforelse
</select>
</div>
</div>
<div class="form-group row">
<label class="label-control col-lg-2">Parts:</label>
<div class="col-lg-12">
<div id="partlist">
</div>
</div>
</div>
<div class="form-group row">
<label class="label-control col-lg-2">Date of Breakdown:</label>
<div class="col-lg-4">
<input type="date" name="breakdowndate" id="breakdowndate" class="form-control ">
</div>
</div>
<div class="form-group row">
<label class="label-control col-lg-2">Time of Breakdown:</label>
<div class="col-lg-4 input-group" style="align-self: flex-start;">
<input type="text" name="breakdowntime" id="breakdowntime" class="form-control datetimepicker-time" autocomplete="off" data-toggle="datetimepicker" data-target="#breakdowntime">
<div class="input-group-append"><span class="input-group-text"><small>Military Time</small></span></div>
</div>
</div>
<div class="form-group row">
<div class="col-lg-12 pull-right">
<input type="submit" name="Add" class="btn btn-primary pull-right">
</div>
</div>
</form>
</div>
</div>
</div>
</div>
index.blade.php jQuery部分
$("#machine").change(function(){
var machineid = $(this).val();
if(machineid !== '')
{
$.ajax({
url: "{{url('breakdown/getParts')}}/"+machineid,type: 'get',dataType: 'json',success:function(data){
var partadd = '';
// partadd+='<input type="checkbox" onclick="checkAll()" id="checkall"/> '
// partadd+='<label><h6>Select All</h6></label><br>'
partadd+='<table class="table table-bordered table-striped">';
partadd+='<thead>';
partadd+='<tr>';
partadd+='<th><input type="checkbox" onclick="checkAll()" id="checkall"/></th>'
partadd+='<th class="text-center">Part(Level II)</th>';
partadd+='<th class="text-center">Disassembly</th>';
partadd+='<th class="text-center">Measuring</th>';
partadd+='<th class="text-center">Inspection</th>';
partadd+='<th class="text-center">Correction</th>';
partadd+='<th class="text-center">Assembly</th>';
partadd+='<th class="text-center">Total</th>';
partadd+='<th class="text-center">Start Date</th>';
partadd+='<th class="text-center">Start Time</th>';
partadd+='<th class="text-center">End Date</th>';
partadd+='<th class="text-center">End Time</th>';
partadd+='</tr>';
partadd+='</thead>';
partadd+='<tbody>';
// console.log(data);
for(var i = 0;i < data.length;i++){
var partname = data[i].name;
var partid = data[i].id;
var partdescription = data[i].description;
var partdisassembly = data[i].disassembly !== null ? data[i].disassembly : "00:00";
var partmeasuring = data[i].measuring !== null ? data[i].measuring : "00:00";
var partinspection = data[i].inspection !== null ? data[i].inspection : "00:00";
var partcorrection = data[i].correction !== null ? data[i].correction : "00:00";
var partassembly = data[i].assembly !== null ? data[i].assembly : "00:00";
var partmanhours = data[i].manhours !== null ? data[i].manhours : "00:00";
partadd+='<tr>';
partadd+='<td><input type="checkbox" id="part-'+partid+'" class="partcheck" name="part[]" value="'+partid+'"/> </td>';
partadd+='<td><label><h6>'+partname+' '+partdescription+'</h6></label><br></td>';
partadd+='<td><input type="text" name="disassembly['+partid+']" id="part-disassembly-'+partid+'" class="form-control datetimepicker-part disassembly" data-toggle="datetimepicker" data-target="#part-disassembly-'+partid+'" value="'+partdisassembly+'"></td>';
partadd+='<td><input type="text" name="measuring['+partid+']" id="part-measuring-'+partid+'" class="form-control datetimepicker-part" data-toggle="datetimepicker" data-target="#part-measuring-'+partid+'" value="'+partmeasuring+'"></td>';
partadd+='<td><input type="text" name="inspection['+partid+']" id="part-inspection-'+partid+'" class="form-control datetimepicker-part" data-toggle="datetimepicker" data-target="#part-inspection-'+partid+'" value="'+partinspection+'"></td>';
partadd+='<td><input type="text" name="correction['+partid+']" id="part-correction-'+partid+'" class="form-control datetimepicker-part" data-toggle="datetimepicker" data-target="#part-correction-'+partid+'" value="'+partcorrection+'"></td>';
partadd+='<td><input type="text" name="assembly['+partid+']" id="part-assembly-'+partid+'" class="form-control datetimepicker-part" data-toggle="datetimepicker" data-target="#part-assembly-'+partid+'" value="'+partassembly+'"></td>';
partadd+='<td><input type="text" name="total['+partid+']" id="part-total-'+partid+'" class="form-control datetimepicker-part" data-toggle="datetimepicker" data-target="#part-total-'+partid+'" value="'+partmanhours+'" readonly></td>';
partadd+='<td><input class="form-control" type="date" name="startdate['+partid+']" id="part-startdate-'+partid+'"></td>';
partadd+='<td style="width:8%!important;"><input class="form-control datetimepicker-part" type="text" name="starttime['+partid+']" id="part-starttime-'+partid+'" autocomplete="off" data-toggle="datetimepicker" data-target="#part-starttime-'+partid+'" value="00:00"></td>';
partadd+='<td style="width:5%!important;"><input class="form-control" type="date" name="enddate['+partid+']" id="part-enddate-'+partid+'"></td>';
partadd+='<td style="width:8%!important;"><input class="form-control datetimepicker-part" type="text" name="endtime['+partid+']" id="part-endtime-'+partid+'" autocomplete="off" data-toggle="datetimepicker" data-target="#part-endtime-'+partid+'" value="00:00"></td>';
partadd+='</tr>';
}
partadd+='</tbody>';
partadd+='</table>';
$("#partlist").html(partadd);
// $(function () {
// $('.datetimepicker-part').datetimepicker({
// format: 'HH:mm'
// });
// $('.datetimepicker-part').on('change.datetimepicker',function(){
// var elementid = $(this).attr('id');
// var id = $(this).attr('id').match(/\d+/);
// getTotalPart(id);
// });
// });
}
});
}
});
web.php
Route::post('breakdown/store','BreakdownController@store');
Route::get('breakdown/getParts/{machine}','BreakdownController@getParts');
BreakdownController.php
dd($request->all());
除控制器部分外,其他所有内容均正常运行。每当我使用dd($ request-> all())时,它只会返回以下内容:
array:5 [▼
"_token" => "KRCNWU8jxnT2RSrCrNOuGX9tfdC0TVUWxO3gKVCP"
"machine" => "14"
"breakdowndate" => null
"breakdowntime" => null
"Add" => "Submit"
]
我需要获取Ajax加载的输入,但是仅包括create.blade.php模态中的输入字段。
解决方法
好吧,显然,我在index.blade.php中的html缺少</table>
结束标记。现在可以用了,我现在得到了:
array:16 [▼
"_token" => "6Dej3itbusd4AjzN879BWDrT243cDz4P7FQRQvH5"
"machine" => "13"
"part" => array:5 [▶]
"disassembly" => array:5 [▶]
"measuring" => array:5 [▶]
"inspection" => array:5 [▶]
"correction" => array:5 [▶]
"assembly" => array:5 [▶]
"total" => array:5 [▶]
"startdate" => array:5 [▶]
"starttime" => array:5 [▶]
"enddate" => array:5 [▶]
"endtime" => array:5 [▶]
"breakdowndate" => null
"breakdowntime" => null
"Add" => "Submit"
]
所以请忽略这个问题
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。