【问题标题】:submit all datas from the dataTable of all pages in order依次提交所有页面的dataTable中的所有数据
【发布时间】:2019-06-27 06:05:11
【问题描述】:

在这里我想将所有页面的dataTable中包含的所有数据提交到数据库,因为我已经这样编写了我的代码

 $('.sales_purchase_button').on('click', function(e){

  e.preventDefault();

    var sData = table.$('input').serialize();
    var theForm = $(this).closest('form');

        $.ajax({
            type: "POST",
            url: "<?php echo base_url();?>admin_control/add_sales_purchase",                
            data: sData,
            success: function(data){
                console.log($('#sales_purchase').serialize());

            }
        });
        e.preventDefault(); 

    }); 

数据正在插入,但问题是当我从任何显示页面单击提交按钮时,值是从病房而不是从第一页插入的。我想从病房的第一页插入。

我的html页面是这样的

<form id="sales_purchase"  method="POST">
          <table id="myTableinvoice" class="table table-bordered table_repo">
                      <thead class="thead-light">
                      <tr>
                      <th>Client</th>
                      <?php foreach($months as $month){?>
                        <th><?php echo $month->format("M-Y");?>(Sales)</th>

                       <?php } ?>
                       <!--<th>Total sale</th>-->
                       <?php foreach($months as $month){?>
                        <th><?php echo $month->format("M-Y");?>(Purchase)</th>

                       <?php } ?>
                       <?php foreach($months as $month){?>
                       <th><?php echo $month->format("M-Y");?>(Expenses)</th>
                       <?php } ?>
                      </tr>
                </thead>
                <tfoot>
                     <tr>
                    <th>Client</th>
                    <?php foreach($months as $month){?>

                        <th><?php echo $month->format("M-Y");?>(Sales)</th>

                       <?php } ?>
                       <!--<th>Total sale</th>-->

                       <?php foreach($months as $month){?>
                        <th><?php echo $month->format("M-Y");?>(Purchase)</th>

                       <?php } ?>
                       <?php foreach($months as $month){?>
                       <th><?php echo $month->format("M-Y");?>(Expenses)</th>
                       <?php } ?>
                    </tr>
                </tfoot>
                <tbody>
                   <?php $net_total=0;$br=0;$i=0; if(!empty($client_details)){
                       foreach ($client_details as $key => $client_detail) {

                         ?>
                        <tr class="tr" >
                        <td data-filter="<?= $client_detail->client_name;?>" nowrap><?php if($client_detail->client_name) echo $client_detail->client_name; else echo "NULL";?></td>
                        <input type="hidden" id="hidden_client_id" name="hidden_client_id[]" value="<?= $client_detail->id;?>">
                        <input type="hidden" id="client_id" name="client_id<?php echo $i;?>[]" value="<?= $client_detail->id;?>">

                        <?php foreach($months as $month){?>

                        <input type="hidden" class="" name="months<?php echo $i;?>[]" value="<?php echo $month->format("M");?>" >
                        <input type="hidden" class="" name="year<?php echo $i;?>[]" value="<?php echo $month->format("Y");?>" >
                        <td><input type="text" class="sales_amount" name="sales_amount<?php echo $i;?>[]" ></td>

                        <?php } ?>
                        <!--<td><input type="text" readonly="readonly" class="total_sale" name="total_sale<?php echo $i;?>" ></td>-->
                       <?php foreach($months as $month){
                           ?>

                        <td><input type="text" class="sales_amount" name="purchase_amount<?php echo $i;?>[]"></td>

                       <?php } ?>
                       <?php foreach($months as $month){?>
                       <td><input type="text" name="expense_amount<?php echo $i;?>[]"></td>
                       <?php } ?>




            </tr>

                    <?php $i++;  }
                   } ?>









                </tbody>

            </table>
            <div class="form-group" style="margin-top: 20px">

            <input type="hidden" name="group" id="group" value="<?php echo $group;?>">
            <input type="button" id="sales_purchase_button" class="btn btn-primary sales_purchase_button" style="font-weight: bold" value="Create" />
            <p><button>Submit</button></p>

        </div>
        </form>

【问题讨论】:

  • 任何人的想法
  • 所有您的输入放在一个表单中
  • 它只放在一个表单中
  • 然后序列化表单上的所有输入,看我的回答
  • 问题应该是dataTable分页。遍历表的每一行,为您添加相关的 值。迭代,可以捕获表格的所有输入形式

标签: jquery ajax datatable


【解决方案1】:

序列化整个表单

 var sData = $(this).closest('form').serialize();

【讨论】:

  • 当我使用这个时,只有一页数据得到
  • 那么你的页面上有多个表单
  • 你能提供你网页的html吗?
  • 我粘贴了有问题的html页面,请看一下
【解决方案2】:

我为你创建了一个 JSFiddle。以下是javascript中的相关部分:

$(document).ready(function() {
    $('#example').DataTable();
} );

$( "#but" ).click(function() {
     var table = $('#example').DataTable();    
     var info = table.page();
     console.log(info);
     table.page("first").draw("page");
     var allData = table.rows().data();
     var proof = allData.$('input').serialize();  
     table.page(info).draw("page"); 
     console.log(proof);
});   

完整的 JSFiddle here

是简陋的例子,但我试图模拟你的环境。运行并观察控制台日志。我可以捕获表格所有行的所有输入形式。

【讨论】:

  • 它和我的代码一样,但问题是数据没有按顺序排列。如果我点击第二页,数据是从第一页开始而不是从第一页开始的跨度>
  • 我已经用可能的解决方案编辑了答案。享受并让我知道。
猜你喜欢
  • 2021-03-15
  • 2010-11-06
  • 1970-01-01
  • 1970-01-01
  • 2012-12-02
  • 1970-01-01
  • 2020-08-12
  • 2015-07-05
  • 1970-01-01
相关资源
最近更新 更多