数据表外部链接和货币问题

Posted

技术标签:

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

?>

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

【问题讨论】:

【参考方案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。

【讨论】:

以上是关于数据表外部链接和货币问题的主要内容,如果未能解决你的问题,请参考以下文章

使用指向 CSV 文件的 URL 链接到外部数据

我们 MSAccess 是不是可以通过 SQL Server 中的外部链接视图插入数据? [复制]

微信小程序可不可以访问外部链接

外部链接将域添加到链接的前面,即使使用 http://

用于创建/维护外部结构的 C++ 构造函数链接

通过外部图片链接上传和裁剪图片