首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在通过AJAX调用tbody之后,所有数据都在第1页中。

在通过AJAX调用tbody之后,所有数据都在第1页中。
EN

Stack Overflow用户
提问于 2019-08-31 08:33:58
回答 1查看 44关注 0票数 0

我可否要求在这方面提供协助?我检查了每一个关于这个问题的指南,并遵循了所有的指南,但没有运气。

当通过AJAX调用填充表时,所有数据仅位于一个页面中。

我尝试将整个dataTable脚本添加到tbody调用程序中,但没有成功。

这些代码如下。

这是我的<?php include 'ajax-process/earnings_amendment_account-ajax-table.php'; ?>

代码语言:javascript
复制
<script>
 $(document).ready(
            function() {
                setInterval(function() {                  
                $.ajax({
                url:'table_body/earnings_amendment_account_table_body.php',
                dataType:'json',
                type:'get',
                cache:true,
                success:json,

               });

               function json(data){
                   $("#earnings_amendment_account_body").empty();
                   $(data).each(function(index,value)  {
                        console.log(value);
                        var table = '<tr>' +
                        '<td>' + value.accountcode + '</td>'+
                        '<td>' + value.accounttitle + '</td>'+
                        '<td>' + value.accounttype + '</td>'+
                        '</tr>';
                        $('#earnings_amendment_account').append( table );});
                        }
                        }, 1000);
                        $('#earnings_amendment_account').dataTable();

            });
</script>

这是我在index.php的桌子

代码语言:javascript
复制
<table id="earnings_amendment_account" class="table table-bordered" style="table-layout: fixed; display: none">
                <thead>

                  <th>Account Code</th>
                  <th>Account Title</th>
                  <th>Account Type</th>

                </thead>
                <tbody id="earnings_amendment_account_body">

                </tbody>
              </table>

这是我的table_body/earnings_amendment_account_table_body.php

代码语言:javascript
复制
<?php
include '../backend/conn.php';
include '../backend/session.php';
$params=array();
$sql = "SELECT accountcode,accounttype,accounttitle,accounttype,postedby,dateposted,
approvedby,dateapproved FROM earningsamendmentaccount";
$query = sqlsrv_query($conn, $sql, $params, array("Scrollable" => SQLSRV_CURSOR_KEYSET));
if ($query === false ) { echo "Error (sqlsrv_query): ".print_r(sqlsrv_errors(), true); exit; }                  
$dbdata = array();
while($row = sqlsrv_fetch_array($query, SQLSRV_FETCH_ASSOC)){
$dbdata[]=$row;
}
echo json_encode($dbdata);
                  ?>

这是我的dataTable。

//此dataTable中的所有函数仍未包括在内,因为我正在测试dataTable主体通过AJAX调用时是否一切正常。

代码语言:javascript
复制
<script>
function format ( dataSource ) {
    var html = '<table cellpadding="5" cellspacing="0" border="0" style="padding-left:50px;" class="table table-bordered">';
    for (var key in dataSource){
        html += '<tr>'+
                   '<td>' + key             +'</td>'+
                   '<td>' + dataSource[key] +'</td>'+
                '</tr>';
    } return html += '</table>';  }
var earnings_amendment_account_table = $('#earnings_amendment_account').DataTable({
    "pagingType": "full_numbers"
    });
      $('#earnings_amendment_account').on('click', 'td.details-control', function () {
          var tr = $(this).closest('tr');
          var row = earnings_amendment_account_table.row(tr);

          if (row.child.isShown()) {
              row.child.hide();
              tr.removeClass('shown');
          } else {
              // Open this row
              row.child(format({
                  'Posted By : ' : tr.data('key-1'),
                  'Date Posted : ' : tr.data('key-2'),
                  'Approved By : ' :  tr.data('key-3'),
                  'Date Approved : ' :  tr.data('key-4')
              })).show();
              tr.addClass('shown');
          } });
</script>

数据正在控制台上传递。显示0项中的0项(),但数据显示在页面中。

顶部:

底部:

提前谢谢你。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-31 09:17:48

下面是datatabe的基本示例,如果您正在使用datatable并执行自定义操作,则需要执行以下操作。

Index.php

代码语言:javascript
复制
<!DOCTYPE html>
<html leng="en">
<head>
    <title>Display Emloyee </title>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
     <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
    <!-- jQuery library -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <!-- Latest compiled JavaScript -->
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script> 
    <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/v/dt/dt-1.10.18/datatables.min.css"/>
    <script type="text/javascript" src="https://cdn.datatables.net/v/dt/dt-1.10.18/datatables.min.js"></script>
</head>
<body>
    <div class="container-fluid">
        <div class="row">
            <div class="table-responsive">
                <table class="table table-striped" id="tabl_user">
                    <thead>
                        <tr>
                        <th>Id</th>
                        <th>F Name</th>
                        <th>L Name</th>
                        <th>Gender</th>
                        </tr>
                    </thead>
                </table>
            </div>
        <script>
        $(document).ready(function()
        {
            $('#tabl_user').DataTable( {
                "processing": true,
                "serverSide": true,
                "lengthMenu": [5, 10, 25, 50, 100, 150],
                "columnDefs" : [{orderable:false, targets:[1] }],
                "ajax": "trylimited.php"
            } );
        });
        </script>
        </div>
    </div>
</body>
</html>

trylimited.php

代码语言:javascript
复制
<?php
include "con.php"; 
$column = array('id', 'first_name', 'last_name', 'phone_no', 'mobile','city', 'zip');
$sIndexColumn = "id";
$sTable = "elision_user";
// Searching 
$wherecondition = "";

if($_REQUEST['search']['value'] != "")
{

    $wherecondition = "WHERE (";
    for($i=0; $i<count($column); $i++)
    {
        $wherecondition .="".$column[$i]." LIKE '%".$_REQUEST['search']['value']."%' OR ";

    }       
    $wherecondition = substr_replace($wherecondition, "", -3);
    $wherecondition .=')';

}
$draw = $_REQUEST['draw'];
$start = $_REQUEST['start'];
$limit = $_REQUEST['length'];
$sql = "SELECT * FROM allinone";
$res = mysqli_query($con, $sql);
$sql1 = "SELECT * FROM elision_user";
$sql1.=" $wherecondition ORDER BY ".$column[$_REQUEST['order'][0]['column']]." ".$_REQUEST['order'][0]['dir']." limit  $start, $limit";
$res1 = mysqli_query($con, $sql1);
$recordsTotal =  mysqli_num_rows($res1);
$recordsFiltered =   mysqli_num_rows($res);
$asd = array();
$final_array = array();
while( $row = mysqli_fetch_array($res1) ) {
 $dataArray = array();
    $dataArray[] = $row["id"];
    $dataArray[] = $row["first_name"];
    $dataArray[] = $row["last_name"];
    $dataArray[] = $row["phone_no"];
    $dataArray[] = $row["mobile"];
    $dataArray[] = $row["city"];
    $dataArray[] = $row["zip"];
    $asd[]=$dataArray;
 }

$final_array = array("draw" => $draw, "recordsTotal" => $recordsTotal, "recordsFiltered" => $recordsFiltered, "data" => $asd, "sql" => $sql1);
echo json_encode($final_array); exit;
?>

希望这个例子能对你的关心有所帮助。如果这个例子有帮助,请投赞成票。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57736424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档