Я использую 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>
Таблица вне функции работает нормально.
У меня естьдве проблемы.
- В функции (d) не работает таблица с дополнительными данными
- В функции (d) переменная d [0] содержит идентификатор, который мне нужно нажатьв ajax звоните вместо образца.
Спасибо за любой совет.