如何使用选择选项更改数据表中的数据

时间:2019-10-02 18:50:03

标签: javascript php jquery datatables

Front datatable

这是数据表的前端
我想从选择选项更改数据表数据。更改为其他类别显示错误后,它第一次工作。

  

DataTables警告:表格ID = tblviewstock-无法重新初始化DataTable

<table id="tblviewstock" class="table table-striped "  >
        <thead>
        <tr>
            <th>Batch ID</th>
            <th>Product ID</th>
            <th>selling price</th>
            <th>Quantity</th>
            <th>Receive Date</th>
        </tr>
        </thead>
        <tbody id="stockBody" style="font-size: 13px">

        </tbody>

    </table>

javascript

$("#stock_cat").change(function  () {
            var cat_id = $(this).val();              

            var dataTable = $("#tblviewstock").DataTable({
                "processing": true,
                "serverSide": true,

                "ajax": {
                    "url": "lib/mod_stock.php?type=viewStock&catid="+cat_id,
                    "type": "POST"
                },
                "columns": [
                    {"data": "0"},
                    {"data": "1"},
                    {"data": "2"},
                    {"data": "3"},
                    {"data": "4"},
                ]
            });

        });

mod_view.php -函数view_stock() 这个文件是mod-view.php

function viewStock(){
     $catid =  $_GET['catid'];
    $table ='tbl_products';

    $primaryKey ='prod_id';
    $where = "cat_id='$catid'";

    $columns = array(

        array( 'db' => 'prod_id', 'dt'=> 0),
        array( 'db' => 'prod_img', 'dt'=> 1),
        array( 'db' => 'prod_name', 'dt'=> 2),
        array( 'db' => 'prod_modal', 'dt'=> 3),
        array( 'db' => 'prod_color', 'dt'=> 4),

    );
    require_once('config.php');
    $host = Config::$host ;
    $user = Config::$db_uname ;
    $pass = Config::$db_upass ;
    $db = Config::$db_name ;

    $sql_details = array(
        'user' => $user,
        'pass' => $pass,
        'db'   => $db,
        'host' => $host
    );

    require('ssp.class.php');

    echo json_encode(
        SSP::complex($_POST, $sql_details, $table, $primaryKey, $columns,null,$where )
    );
}

1 个答案:

答案 0 :(得分:0)

不能重新初始化数据表。 (即,不能为同一张表设置两次选项)。一旦选择了新类别,您可以尝试销毁该表并重新创建它。也许尝试:

var dataTable;
var i = 0;
$("#stock_cat").change(function  () {
  if(++i > 1) dataTable.destroy();
  var cat_id = $(this).val();   

    dataTable = $('#tblviewstock').DataTable( {
        "processing": true,
        "serverSide": true,

       "ajax": {
          "url": "lib/mod_stock.php?type=viewStock&catid="+cat_id,
           "type": "POST"
        },
        "columns": [
           {"data": "0"},
           {"data": "1"},
           {"data": "2"},
           {"data": "3"},
           {"data": "4"},
        ]
    });

});