Как получить данные в функцию DataTables (javascript) и наоборот - PullRequest
0 голосов
/ 25 сентября 2018

Я использую DataTables, чтобы показать данные из таблицы MySQL.Эта часть отлично работает.Я также показываю некоторые дополнительные данные после щелчка по строке таблицы.Эти данные основаны на идентификаторе выбранной строки.Дополнительные данные извлекаются с помощью php-скрипта следующим образом:

<?php
$q = intval($_GET['q']);

$conn = mysqli_connect("10.10.99.11", "abc", "def", "tv");

$result = mysqli_query($conn, "SELECT TIME, ADESC FROM TM, AT WHERE TM.ACTION=CWERT AND SPRAS='EN' AND NO= '" . $q . "'");

// storing in array
$workm = array();
while ($row = mysqli_fetch_assoc($result))
{
        $workm[] = $row;
}

// returning response in JSON
echo json_encode($workm);

$conn->close();
?>

Мой index.php

<!-- this table works ok -->
<table><thead>
<tr><th>TIME</th><th>ADESC</th></tr>
</thead>
<tbody id="workm"></tbody></table>


<script>
    function format ( d ) {
    return '<div id="rowdetails">'+
                '<div class="row">' +

                        '<div class="col-4">' +
                                '<div class="row">' +
                                        '<div class="col-6">' +
                                                '<span class="be">' + d[0] + '</span>' +
                                        '</div>' +
                                        '<div class="col-6">' +
                                                d[5] + '<br>' +
                                                d[7] +
                                        '</div>' +
                                '</div>' +
                                'Issue: ' + '<div class="issuetext">' + d[6] + '</div>' +
                        '</div>' +

                        '<div class="col-4">' +
                                '<table><thead><tr><th>Class</th><th>Work</th><th>Err</th></tr></thead>' +
                                        '<tbody><tr><td></td><td>' + d[4] + '</td><td>' + d[8] + '</td></tr></tbody>' +
                                '</table>' +
                        '</div>' +

                        '<div class="col-4">' +
                                'Site: ' + d[1] + '<br>' +
                                d[10] + '<br>' +
                                d[11] + '-' + d[12] + ' ' + d[2] +
                        '</div>' +
                '</div>' +

'<table><thead><tr><th>TIME</th><th>ADESC</th></tr></thead>' +
        '<tbody id="workm"></tbody></table>' +
           '</div>';
}



var sample = 900055;

    var ajax = new XMLHttpRequest();

    ajax.open("GET","data.php?q="+sample, true);
    // sending ajax request
    ajax.send();

    // receiving response from data.php
    ajax.onreadystatechange = function()
    {
            if (this.readyState == 4 && this.status == 200)
            {
                    // alert(this.responseText);
                    // converting JSON back to array
                    var workm = JSON.parse(this.responseText);
                    console.log(workm);

                    // html value for <tbody>
                    var html = "";
                    // looping through the data
                    for (var a = 0; a < workm.length; a++)
                    {
                            var time = workm[a].TIME;
                            var measure = workm[a].ADESC;

                            // appending at html
                            html += "<tr>";
                                    html += "<td>" + time + "</td>";
                                    html += "<td>" + measure + "</td>";
                            html += "</tr>";
                    }
                    // replacing the <tbody> of <table>
                    document.getElementById("workm").innerHTML = html;
            }
}
</script>

Таблица вне функции работает нормально.

У меня естьдве проблемы.

  1. В функции (d) не работает таблица с дополнительными данными
  2. В функции (d) переменная d [0] содержит идентификатор, который мне нужно нажатьв ajax звоните вместо образца.

Спасибо за любой совет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...