【问题标题】:Datatables external link and money currency problem数据表外部链接和货币问题
【发布时间】:2021-07-24 00:48:33
【问题描述】:
  1. 我正在尝试将外部链接添加到“customer_id”链接示例必须像这样 /edit-customer.php?customer_id=$customer_id(这是指向原始客户 ID 的链接)我正在创建大详细信息页面大多数信息不是在表格中
  2. 我想添加“$”,货币格式必须为 1,250.00 美元。这是我的代码

<script>
  $(document).ready(function() {
    var dataTable = $('#customer_table').DataTable({
      "processing": true,
      "serverSide": true,
      "order": [],
      "ajax": {
        url: "serverside/ajax-users.php",
        type: "POST"
      }
    });

    $('#customer_table').on('draw.dt', function() {
      $('#customer_table').Tabledit({
        url: 'serverside/action.php',
        dataType: 'json',
        columns: {
          identifier: [0, 'customer_id'],
          editable: [
            [1, 'customer_store', '{"1":"B2C","2":"B2B"}'],
            [2, 'customer_name'],
            [3, 'customer_address'],
            [4, 'customer_phone'],
            [5, 'customer_email'],
            [6, 'customer_status', '{"1":"Inactive","2":"Active"}']
          ]
        },
        restoreButton: false,
        onSuccess: function(data, textStatus, jqXHR) {
          if (data.action == 'delete') {
            $('#' + data.customer_id).remove();
            $('#customer_table').DataTable().ajax.reload();
          }
        }
      });
    });
  }); <
/script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdn.datatables.net/1.10.22/js/jquery.dataTables.min.js"></script>
<table id="customer_table" class="display nowrap form-inline" cellspacing="0" width="100%">
  <thead>
    <tr>
      <th>ID</th>
      <th>Store ID</th>
      <th>Name</th>
      <th>Address</th>
      <th>Phone</th>
      <th>Email</th>
      <th>Status</th>
      <th>Signing Date</th>
      <th>Orders</th>
      <th>Total Sales</th>
      <th>Detail</th>
    </tr>
  </thead>
  <tbody></tbody>
</table>


//AJAX-USER.PHP
<?php

link db

$column = array("customer_id", "customer_store", "customer_name", "customer_address", "customer_phone", "customer_email",  "customer_status",  "customer_date",  "customer_order",  "customer_sale");

$query = "SELECT * FROM customers ";

if(isset($_POST["search"]["value"]))
{
 $query .= '
 WHERE customer_id LIKE "%'.$_POST["search"]["value"].'%"
    OR customer_name LIKE "%'.$_POST["search"]["value"].'%"
    OR customer_store LIKE "%'.$_POST["search"]["value"].'%"    
    OR customer_address LIKE "%'.$_POST["search"]["value"].'%"
    OR customer_phone LIKE "%'.$_POST["search"]["value"].'%" 
    OR customer_email LIKE "%'.$_POST["search"]["value"].'%" 
    OR customer_sale LIKE "%'.$_POST["search"]["value"].'%"
    OR customer_status LIKE "%'.$_POST["search"]["value"].'%" 
    ';
}

if(isset($_POST["order"]))
{
 $query .= 'ORDER BY '.$column[$_POST['order']['0']['column']].' '.$_POST['order']['0']['dir'].' ';
}
else
{
 $query .= 'ORDER BY customer_date DESC ';
}
$query1 = '';

if($_POST["length"] != -1)
{
 $query1 = 'LIMIT ' . $_POST['start'] . ', ' . $_POST['length'];
}

$statement = $connect->prepare($query);

$statement->execute();

$number_filter_row = $statement->rowCount();

$statement = $connect->prepare($query . $query1);

$statement->execute();

$result = $statement->fetchAll();

$data = array();

foreach($result as $row)
{
 $sub_array = array();

    $sub_array[] = $row['customer_id'];

    $sub_array[] = $row['customer_store'];

    $sub_array[] = $row['customer_name'];

    $sub_array[] = $row['customer_address'];

    $sub_array[] = $row['customer_phone'];

    $sub_array[] = $row['customer_email'];

    $sub_array[] = $row['customer_status'];

    $sub_array[] = $row['customer_date'];

    $sub_array[] = $row['customer_order'];

    $sub_array[] = $row['customer_sale'];

    $sub_array[] = $row['customer_detail'];

    $data[] = $sub_array;
}

function count_all_data($connect)
{
 $query = "SELECT * FROM customers";
 $statement = $connect->prepare($query);
 $statement->execute();
 return $statement->rowCount();
}

$output = array(
 'draw'   => intval($_POST['draw']),
 'recordsTotal' => count_all_data($connect),
 'recordsFiltered' => $number_filter_row,
 'data'   => $data
);

echo json_encode($output);
?>


//ACTION.PHP
<?php
if ($_POST['action']== 'edit') {

    $data = array(
        ':customer_store' => $_POST['customer_store'],
        ':customer_name' => $_POST['customer_name'],
        ':customer_address' => $_POST['customer_address'],
        ':customer_phone' => $_POST['customer_phone'],
        ':customer_email' => $_POST['customer_email'],
        ':customer_status' => $_POST['customer_status'],
        ':customer_id'    => $_POST['customer_id']
    );

    $query = "
        UPDATE customers
        SET customer_store = :customer_store,
        customer_name = :customer_name,
        customer_address = :customer_address,
        customer_phone = :customer_phone,
        customer_email = :customer_email,
        customer_status = :customer_status
        WHERE customer_id = :customer_id
    ";
    $statement = $connect->prepare($query);
    $statement->execute($data);
    echo json_encode($_POST);

}

if ($_POST['action'] == 'delete') 
{
    $query = "
    DELETE FROM customers
    WHERE customer_id = '".$_POST["customer_id"]."'
    ";
    $statement = $connect->prepare($query);
    $statement->execute();
    echo json_encode($_POST);
}
?>

我的所有信息都在这里,谢谢你的帮助。

【问题讨论】:

    标签: javascript jquery ajax datatable datatables


    【解决方案1】:

    如果你需要!将超链接添加到表列。 我将此代码添加到 type:POST in script 部分下

    我有 9 个表头。我在行尾添加了 1 个“th”。

    "columnDefs": [ {
    "targets": 10,
    "data": 0,
    "render": function ( data, type, row, meta ) {
      return '<center><button class="btn btn-light btn-sm"><a href="/edit-customer.php?customer_id='+data+'">Detail</a></button></center>';
    }
    }]
    

    目标是最后 10 个 ----
    数据 0 是 customer_id。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-21
      • 1970-01-01
      相关资源
      最近更新 更多