javascript - 将数据表放入同一页的两个表中

标签 javascript ajax codeigniter datatables

我有两个填充了 javascrips AJAX 的表,问题是我想要这两个表的数据,它们位于同一页面上。

Tables

<table id="Table01" class="table table-hover display">
    <thead>
        <tr id="tr_tablita">
            <th>#</th>
            <th>Código</th>
            <th>Producto</th>
            <th>Precio</th>
            <th>Cantidad</th>
            <th>Total</th>
            <th>Movimientos</th>
        </tr>
    </thead>
    <tbody id="tabla_get_articulos_venta">

    </tbody>
</table>

<table id="table02" class="table table-hover display">
    <thead>
        <tr>
            <th>#</th>
            <th>Código</th>
            <th>Producto</th>
            <th>Precio</th>
            <th>Proveedor</th>
            <th>Movimientos</th>
        </tr>
    </thead>
    <tbody id="tabla_get_articulos">

    </tbody>
</table>

I fill the tables

var id_venta = <?php echo $id_venta;?>; // traigo el id de la venta para poder editar la venta
var contador = 1;

$(document).ready(function(){        
    get_articulos_venta(id_venta);
    get_articulos();  

    // $('table.display').DataTable();
    var allTables = $('table.display').DataTable();
});

function get_articulos() {

    $.ajax({
        url : "<?php echo base_url('Ventas_controller/get_articulos')?>",
        type: "POST",
        dataType: "JSON",
        success: function(data) {

            var html = '';
            var contador_art = 1;

            var filas = data.length;
            for (  i = 0 ; i < filas; i++){ //cuenta la cantidad de registros
                html += "<tr><td>" +
                contador_art + "</td><td>" +
                data[i].codigo + "</td><td>" +
                data[i].descripcion + "</td><td>" +
                "$ "+data[i].precioCompra + "</td><td>" +
                data[i].proveedor + "</td><td>"+
                "<a type='button' onclick='add_articulo_venta("+data[i].ideArticulo+")' class='btn btn-success'>" +
                    "<i class='fa fa-plus' style='color:#fff;'></i>" +
                "</a>" +"</td><tr>" ;

                contador_art++;
            }
            $('#tabla_get_articulos').html(html);  

        },
        error: function (jqXHR, textStatus, errorThrown) {
            swal({
              title: "Error!",
              text: "No trajeron los artículos del sistema!",
              icon: "error",
              button: true,
              dangerMode: false,
            })
            .then((willDelete) => {
              if (willDelete) {

              }
            });
        }
    });
}

function get_articulos_venta(id_venta) {

    $.ajax({
        url : "<?php echo base_url('Ventas_controller/get_articulos_venta')?>/"+id_venta,
        type: "POST",
        dataType: "JSON",
        success: function(data) {

            var html = '';
            var filas = data.length;

            for (  i = 0 ; i < filas; i++){ //cuenta la cantidad de registros
                html += "<tr><td>" +
                contador + "</td><td>" +
                data[i].codigo + "</td><td>" +
                data[i].descripcion + "</td><td>" +
                "$ "+data[i].precioCompra + "</td><td>" +
                data[i].cantidad + "</td><td>"+
                data[i].preciototal + "</td><td>"+
                "<a type='button' onclick='delete_articulo_venta("+data[i].ideDetalleVenta+")' class='btn btn-danger'>" +
                    "<i class='fa fa-times' style='color:#fff;'></i>" +
                "</a> " +
                "<a type='button' onclick='get_info_articulo_venta("+data[i].ideDetalleVenta+")'  class='btn btn-warning'>" +
                    "<i class='fa fa-pencil' style='color:#fff;'></i>" +
                "</a>" +"</td></tr>" ;

                contador++;
            }
            $('#tabla_get_articulos_venta').html(html); 
        },
        error: function (jqXHR, textStatus, errorThrown) {
            swal({
              title: "Error!",
              text: "No trajeron los artículos de la venta!",
              icon: "error",
              button: true,
              dangerMode: false,
            })
            .then((willDelete) => {
              if (willDelete) {

              }
            });
        }
    });
}

get_articulos_venta(参数); 填写第一个表格

get_articulos(); 填写第二个表格

我需要将数据表应用于两个表

尝试这个选项

https://datatables.net/examples/basic_init/multiple_tables.html

这就是结果

enter image description here

应用设计数据表,但它们看起来好像是空表。

最佳答案

在 ajax 调用的 success 函数内,在 for 循环构建表之后,初始化数据表。

function get_articulos_venta(id_venta) {

$.ajax({
    url : "<?php echo base_url('Ventas_controller/get_articulos_venta')?>/"+id_venta,
    type: "POST",
    dataType: "JSON",
    success: function(data) {

        var html = '';
        var filas = data.length;

        for (  i = 0 ; i < filas; i++){ //cuenta la cantidad de registros
            html += "<tr><td>" +
            contador + "</td><td>" +
            data[i].codigo + "</td><td>" +
            data[i].descripcion + "</td><td>" +
            "$ "+data[i].precioCompra + "</td><td>" +
            data[i].cantidad + "</td><td>"+
            data[i].preciototal + "</td><td>"+
            "<a type='button' onclick='delete_articulo_venta("+data[i].ideDetalleVenta+")' class='btn btn-danger'>" +
                "<i class='fa fa-times' style='color:#fff;'></i>" +
            "</a> " +
            "<a type='button' onclick='get_info_articulo_venta("+data[i].ideDetalleVenta+")'  class='btn btn-warning'>" +
                "<i class='fa fa-pencil' style='color:#fff;'></i>" +
            "</a>" +"</td></tr>" ;

            contador++;
        }
        $('#tabla_get_articulos_venta').html(html);
        $('#tabla_get_articulos_venta').DataTable({
        select: true,
        searching: true
    });


    },
    error: function (jqXHR, textStatus, errorThrown) {
        swal({
          title: "Error!",
          text: "No trajeron los artículos de la venta!",
          icon: "error",
          button: true,
          dangerMode: false,
        })
        .then((willDelete) => {
          if (willDelete) {

          }
        });
    }
});

}

关于javascript - 将数据表放入同一页的两个表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57206441/

相关文章:

javascript - 如何使用 jQuery 模板转义单引号

ajax - Ionic 3 Cordova ajax 调用在 Windows 10 (UWP) 上失败

javascript - 使用 BIOSTALL google map library 在 Code igniter 中设置 Google map pans

javascript - 如何将数组中多个 1 元素的值从 ajax 传递到 PHP?

php - Codeigniter 省略空条件的 where 子句

php - 将 MySQL 数据库连接到 InfusionSoft 联系人

javascript - 如何将空间与 url 关联起来

javascript - 动态表单字段添加清除所有字段的输入

javascript - Strophe.addHandler 只从响应中读取第一个节点是否正确?

ajax - 在不使用其观点的情况下使用安全社交服务