#php #jquery #ajax #laravel
#php #jquery #ajax #laravel
Вопрос:
Я создал форму, в которой таблица ввода будет загружена через ajax в зависимости от выбранного значения выпадающего списка «машина» в create.blade.php .
Всякий раз, когда я отправляю форму и использую 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 включаются модальные.
Ответ №1:
Хорошо, так что, по-видимому, мой html в index.blade.php не хватало </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"
]
Поэтому, пожалуйста, не обращайте внимания на этот вопрос