AJAX DataTable на стороне сервера обнаружена ошибка при изменении serverSide с true на false - PullRequest
0 голосов
/ 29 мая 2020

Оба они работают хорошо IF Я установил serverSide равным false и использовал ajax для публикации моих данных, как вы можете видеть ниже. В основном у меня есть несколько dataTable, которые я хотел бы повторно использовать server_side. php, чтобы извлекать данные из определенных таблиц (поэтому мне нужно передать значение соответственно для серверной части). Я не уверен, почему отображается ошибка, когда serverSide имеет значение true при отправке данных на мою server_side. php. При установке serverSide = true все, что я вижу, - это клиентская сторона, показывающая обработку в моем DataTable. Ни больше ни меньше. Но если я установлю serverSide = false, данные будут сгенерированы безупречно, все работает нормально. В моем случае мне нужно использовать serverSide, что верно.

Это моя php страница, которую я использовал для отображения данных, передаваемых со стороны сервера. Таблица

<script type="text/javascript" src="https://cdn.datatables.net/v/bs4/dt-1.10.21/r-2.2.4/datatables.min.js"></script>
<script type="text/javascript">
        $(document).ready(function() {

            var example = $('#example').DataTable({
                "processing": true,
                "serverSide": true,
                "responsive": true,
                ajax: {
                    url: "server_side.php",
                    type: "post",
                    data: {
                        view: 'product_upload'
                    }
                },
                "order": [],
                "columnDefs": [{
                    targets: [0],
                    className: "dt-body-center",
                    "orderable": false,
                }, {
                    targets: [1],
                    className: "dt-body-center"
                }]
            });
</script>

Это моя server_side. php.

<?php
session_start();
$whereAll        = isset($_SESSION["agent_code"]) ? ($_SESSION["agent_code"]) : '';
$view_type       = isset($_POST['view']) ? $_POST['view'] : '';
/*
 * DataTables example server-side processing script.
 *
 * Please note that this script is intentionally extremely simple to show how
 * server-side processing can be implemented, and probably shouldn't be used as
 * the basis for a large complex system. It is suitable for simple use cases as
 * for learning.
 *
 * See http://datatables.net/usage/server-side for full details on the server-
 * side processing requirements of DataTables.
 *
 * @license MIT - http://datatables.net/license_mit
 */

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * Easy set variables
 */

// DB table to use
$table = $view_type;


// Table's primary key
$primaryKey = 'id';

// Array of database columns which should be read and sent back to DataTables.
// The `db` parameter represents the column name in the database, while the `dt`
// parameter represents the DataTables column identifier. In this case simple
// indexes
$columns = array(
    array(
        'db'        => 'product_name',
        'dt'        => 0,
        'formatter' => function ($d, $row) {
            return '<input type="checkbox" id="' . $d . '" class="check_boxes">';
        }
    ),
    array(
        'db'        => 'image_path',
        'dt'        => 1,
        'formatter' => function ($d, $row) {
            return "<img src='" . $d . "' style='width:100px' class='text-center' />";
        }
    ),
    array(
        'db' => 'product_name', 'dt' => 2,
        'formatter' => function ($d, $row) {
            return 'Category :' . $row['category'] . '<br/>Name :' . $row['product_name'] . '<br/>Description :' . $row['product_description'];
        }
    ),
    array('db' => 'quantity', 'dt' => 3),
    array('db' => 'weight', 'dt' => 4),
    array('db' => 'uom', 'dt' => 5),
    array('db' => 'price', 'dt' => 6),
    array(
        'db' => 'product_name', 'dt' => 7,
        'formatter' => function ($d, $row) {
            return '<a href="#">Edit</a><br/><a href="#">Update</a><br/><a href="#">Delete</a>';
        }
    ),
    array('db' => 'category', 'dt' => 8),
    array('db' => 'product_description', 'dt' => 9)
);

// SQL server connection information
$sql_details = array(
    'user' => 'root',
    'pass' => '',
    'db'   => 'ecom',
    'host' => 'localhost'
);


/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * If you just want to use the basic configuration for DataTables with PHP
 * server-side, there is no need to edit below this line.
 */

require('ssp.class.php');

echo json_encode(
    //SSP::simple($_GET, $sql_details, $table, $primaryKey, $columns)
    SSP::complex($_GET, $sql_details, $table, $primaryKey, $columns, null, "added_by = '" . $whereAll . "' and is_show = '1'")

);

Заранее спасибо!

1 Ответ

0 голосов
/ 30 мая 2020

Понижение версии DataTable с 1.10.21 до 1.10.20 устранило мою проблему.

https://cdn.datatables.net/v/bs4/dt-1.10.21/r-2.2.4/datatables.min.js

https://cdn.datatables.net/v/bs4/dt-1.10.20/r-2.2.4/datatables.min.js

Не уверен, что это внутренняя ошибка или что-то в этом роде.

...