Server-side processing - 404 request header?

Server-side processing - 404 request header?

phlexphlex Posts: 7Questions: 2Answers: 0

Im using the example from here: https://datatables.net/examples/data_sources/server_side (modified with my login data) along with
https://github.com/DataTables/DataTablesSrc/blob/master/examples/server_side/scripts/ssp.class.php (with "test" block deleted)

However response is always 404, no matter how i modify the url or type.

"HTTP/1.1 404 Not Found"

$(document).ready( function () {
    var table = $('#mahtable').DataTable({
        "processing": true,
        "serverSide": true,
        "ajax": {"url": "/public_html/wp-content/themes/newtheme/ss.php",
                 "type":"POST"}
    } );

i have tried to google the solution for 2 hours now but nothing has helped, please if you need additional info just say what u need. Its a wordpress site if that matters.

Whats the worst i dont even know if this part works:

<?php

/*
 * 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 = 'datatables_demo';

// 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' => 'first_name', 'dt' => 0 ),
    array( 'db' => 'last_name',  'dt' => 1 ),
    array( 'db' => 'position',   'dt' => 2 ),
    array( 'db' => 'office',     'dt' => 3 ),
    array(
        'db'        => 'start_date',
        'dt'        => 4,
        'formatter' => function( $d, $row ) {
            return date( 'jS M y', strtotime($d));
        }
    ),
    array(
        'db'        => 'salary',
        'dt'        => 5,
        'formatter' => function( $d, $row ) {
            return '$'.number_format($d);
        }
    )
);

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


/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * 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 )
);

This question has an accepted answers - jump to answer

Answers

  • allanallan Posts: 61,446Questions: 1Answers: 10,054 Site admin
    Answer ✓

    "ajax": {"url": "/public_html/wp-content/themes/newtheme/ss.php"

    Very unlikely you'd have the public_html in the path - just:

    "ajax": {"url": "/wp-content/themes/newtheme/ss.php"
    

    should do (assuming that the ss.php script is actually in that directory).

    Allan

  • phlexphlex Posts: 7Questions: 2Answers: 0

    That did indeed fix it, Thanks. Now im getting this..

    DataTables warning: table id=testT - Invalid JSON response. For more information about this error, please see http://datatables.net/tn/1

    HTTP/1.1 200 OK

    Response is empty, cant find any errors logs on my server...

    I triple checked all the data in ss.php but i dont see anything wrong.

    <?php
    
    /*
     * 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 = 'kal';
    
    // 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' => 'Namirnica_100_grama', 'dt' => 1 ),
        array( 'db' => 'kcal',  'dt' => 2 ),
        array( 'db' => 'UH',   'dt' => 3 ),
        array( 'db' => 'Masti',     'dt' => 4 ),
        array( 'db' => 'Proteini',     'dt' => 5 ),
        array( 'db' => 'Kategorija',     'dt' => 6 ),
    );
    
    // SQL server connection information
    $sql_details = array(
        'user' => 'kalorije',
        'pass' => 'TRTQ:te_uxO?+',
        'db'   => 'kalorije_230751',
        '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 )
    );
    

    This is the file (Sensitive information modified)

  • phlexphlex Posts: 7Questions: 2Answers: 0

    Update:

    Added this part of code i found from your other post @allan

    require('ssp.class.php'); 
    
    $d = SSP::simple( $_GET, $sql_details, $table, $primaryKey, $columns );
    
    echo json_encode( $d );
    
    var_dump( $d );
    

    Now im getting a response like this:

    array(4) {
      ["draw"]=>
      int(0)
      ["recordsTotal"]=>
      int(3913)
      ["recordsFiltered"]=>
      int(3913)
      ["data"]=>
      array(3913) {
        [0]=>
        array(8) {
          [0]=>
          string(1) "1"
          [1]=>
          string(23) "Senf sa zrncima  Maille"
          [2]=>
          string(2) "18"
          [3]=>
          string(3) "0.0"
          [4]=>
          string(3) "0.0"
          [5]=>
          string(3) "0.0"
          [6]=>
          string(21) "Ke?ap, senf, majoneza"
          [7]=>
          string(22) "Ulja, umaci i preljevi"
        }
        [1]=>
        array(8) {
          [0]=>
          string(1) "2"
          [1]=>
          string(22) "Bavaria premium pivo  "
          [2]=>
          string(2) "24"
          [3]=>
          string(3) "0.0"
          [4]=>
          string(3) "0.0"
          [5]=>
          string(3) "0.0"
          [6]=>
          string(4) "Pivo"
          [7]=>
          string(14) "Pi?a i napitci"
        }
        [2]=>
    

    From what i see some special chars are not showing, could that be the issue?

  • phlexphlex Posts: 7Questions: 2Answers: 0
    edited July 2019

    Update 2(Solved):

    https://datatables.net/forums/discussion/comment/152318/#Comment_152318

    Did What this commented suggested and it worked,

    Modified the code to this.

                    array( PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8' )
                );
    
This discussion has been closed.