簡體   English   中英

JQuery 加載的輸入未傳遞給 controller

[英]JQuery loaded input not being passed to controller

我制作了一個表格,其中將通過 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');

故障控制器.php

dd($request->all());

除了 controller 部分外,一切正常。 每當我使用 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"
]

所以請忽略這個問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM