1

我的视图中有一个包含多个 html 表的表单。如何通过请求从 html 表中获取所有数据到我的控制器。以下代码是我的看法。

<table id="mastertree-table" class="table table-bordred table-striped">
    <thead>
    <th style="">Id</th>
    <th>Introducer Id</th>
    <th>Reference ID</th>
    <th>Amount</th>
    <th>Calculation</th>
    <th style="text-align: right;">Percentage</th>
    <th style="text-align: right;">Value</th>
    </thead>
    <tbody>
    @foreach($TreePayroll as $row)
        {!! Form::open(array('method'=>'POST', 'route' => array('payroll.update',$approveMasterPayroll[0]->EmpId, $approveMasterPayroll[0]->FYId), 'class' => 'form-horizontal', 'id' => 'payroll-form')) !!}
        {{ csrf_field() }}
        <tr>
            <td style="width: 80px; height: 5px">{!! Form::text('PHId',$row->PHId, ['class'=>'form-control', 'readonly', 'style'=>'text-align:right;']) !!}</td>
            <td>{{ $row->PayHead }}</td>
            <td>{{ $row->PayHeadType }}</td>
            <td>{{ $row->Computation }}</td>
            <td>{{ $row->Calculation }}</td>
            <td style="width: 100px; height: 5px">{!! Form::text('Rate',$row->Rate, ['class'=>'form-control', 'readonly', 'style'=>'text-align:right;']) !!}</td>
            @if($row->CalcId == 2)
                <td style="width: 150px; height: 5px">{!! Form::text('Value',$row->Value, ['class'=>'form-control', 'style'=>'text-align:right;']) !!}</td>
            @else
                <td style="width: 150px; height: 5px">{!! Form::text('Value',$row->Value, ['class'=>'form-control', 'readonly', 'style'=>'text-align:right;']) !!}</td>
            @endif
        </tr>
        {!! Form::close() !!}
    @endforeach
    </tbody>
</table>
4

1 回答 1

0

您可以使用 jquery 和 ajax 将表值发布到控制器...如下所示

var TableData;
TableData = saveTblValues()
TableData = $.toJSON(TableData);

function saveTblValues()
{
  var TableData = new Array();

  $('#your_table_id tr').each(function(row, tr){
     TableData[row]=
   {
        "column1_name" : $(tr).find('td:eq(0)').text() //for first column value
        , "column2_name" :$(tr).find('td:eq(1)').text()  //for second column value
        , "column3_name" : $(tr).find('td:eq(2)').text() //for third column value
        , "column4_name" : $(tr).find('td:eq(3)').text() // for fourth column value
    }    
}); 
 TableData.shift();  // first row will be empty - so remove
 return TableData;
}



$.ajax({
type: "POST",
url: "your route URL",
data: "TableData=" + TableData,
success: function(data){
    // return value 
   }
});
于 2019-12-04T11:17:55.233 回答