2017-01-17 1 views
0

Я прошел через рекомендуемые сообщения и не могу найти ответ.JQuery DataTables - не может получить данные json от PHP на сервере

У меня есть последние jquery и datatables с их соответствующих сайтов.

У меня есть PHP-скрипт, который используется для доступа к MySQL данные для других страниц, так что я знаю, что это работает, но для справки здесь является PHP код (OTCalDBFetch.php):

<?php 
// List of events 

try { 
    // Connect to database 
    $connection = new PDO('mysql:host=localhost;dbname=items;charset=utf8mb4', 'uuuuuuuu', 'pppppppp'); 

    // Prepare and execute query 
    $query = "SELECT * FROM items.events ORDER BY start"; 
    $sth = $connection->prepare($query); 
    $sth->execute(); 

    // Returning array 
    $events = array(); 

    // Fetch results 
    while ($row = $sth->fetch(PDO::FETCH_ASSOC)) { 
     $e = array(); 
     $e['id'] = $row['id']; 
     $e['title'] = $row['title'];; 
     $e['start'] = $row['start']; 

     // Merge the event array into the return array 
     array_push($events, $e); 
    } 

    // Output json for our calendar 
    $json = json_encode($events, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT); 

    echo $json; 
    exit(); 

} catch (PDOException $e) { 
    echo $e->getMessage(); 
} 

>

И вот html, который я использую, почти точно пример с сайта datatables.

<!DOCTYPE html> 
 
<html> 
 
    <head> 
 
     <meta charset="utf-8"> 
 
     <meta name="viewport" content="initial-scale=1.0, maximum-scale=2.0"> 
 
     <link rel="stylesheet" type="text/css" href="assets/css/datatables.min.css"> 
 
     <script type="text/javascript" language="javascript" src="assets/lib/jquery.min.js"></script> 
 
     <script type="text/javascript" language="javascript" src="assets/lib/jquery-migrate-3.0.0.min.js"></script> 
 
     <script type="text/javascript" language="javascript" src="assets/lib/datatables.min.js"></script> 
 
     <script type="text/javascript" language="javascript" class="init"> 
 

 
      $('#example').DataTable({ 
 
       "ajax": { 
 
        "processing": true, 
 
        "serverSide": true, 
 
        "ajax": 'OTCalDBFetch.php', 
 
       }, 
 
       "columns": [ 
 
        { "data": "start" }, 
 
        { "data": "title" } 
 
       ] 
 
      }); 
 
     </script> 
 
    </head> 
 

 
    <body class="dt-example"> 
 
     <table id="example" class="display" cellspacing="0" width="100%"> 
 
      <thead> 
 
       <tr> 
 
        <th>start</th> 
 
        <th>title</th> 
 
       </tr> 
 
      </thead> 
 
     </table> 
 
    </body> 
 
</html>

И то, что происходит в основном ничего. в браузере (Firefox)

  • нет никаких ошибок на веб-консоли, браузера консоли, или PHP Error Log появляется

    1. заголовок таблицы.
    2. Отладчик веб-разработчиков (Network) показывает, что запрос никогда не был выполнен.

    Все это заставляет меня поверить, что я пропустил что-то очень простое. в html для вызова сервера.

    Любая помощь будет оценена по достоинству.

    Привет, Jim

  • +0

    Почему ваша 'обработка' /' serverSide'/'ajax' внутри' ajax'? https://datatables.net/examples/data_sources/server_side.html – Sean

    ответ

    0
    $('#example').DataTable({ 
    
        "processing": true, 
        "serverSide": true, 
        "ajax": 'OTCalDBFetch.php', 
        "columns": [ 
           { "data": "start" }, 
           { "data": "title" } 
        ], 
    

    });

    Не нужно писать ajax внутри инициализации с возможностью ввода данных.

    +0

    Это сделало это, большое спасибо. Слишком много примеров из слишком многих версий за слишком много лет. – user1047857