Я динамически создаю таблицу через событие нажатия кнопки
function createTable() {
$.ajax ({
url: 'php/GetData.php',
type: 'POST',
data: {id:25},
success: function(msg){
var obj = JSON.parse(msg);
var tableString = "<table id='tbla' class='display'><thead><tr><th>Name<th>Age<th>Birthday</tr></thead><tbody>";
for (var i=0; i<obj.length; i++) {
//alert(obj[i].name);
tableString += gg_stringformat("<tr><td>{0}<td>{1}<td>{2}</tr>", obj[i].name, obj[i].age, obj[i].birthday);
}
tableString += "</tbody></table>";
//alert(tableString);
$('#divb').html(tableString);
$('#tbla').dataTable();
}
});
}
метод
. $ ( '# TBLA') DataTable();
не работает. Когда я помещаю эту строку в $(document).ready(function(){.....});
возникает ошибка, и ничего не видно. Потому что таблица с этим id, все еще не представлена. Как достичь этой задачи?
Все соответствующие файлы связаны правильно.
<link rel="stylesheet" href="DataTables/dataTables.min.css"></style>
<script type="text/javascript" src="DataTables/dataTables.min.js"></script>
function gg_stringformat() {
var argcount = arguments.length,
string,
i;
if (!argcount) {
return "";
}
if (argcount === 1) {
return arguments[0];
}
string = arguments[0];
for (i = 1; i < argcount; i++) {
string = string.replace(new RegExp('\\{' + (i - 1) + '}', 'gi'), arguments[i]);
}
return string;
}
В HTML, который вы используете для построения таблицы, есть несколько ошибок. Вы не закрываете теги <th>
или <td>
. Это может вызвать проблемы.
Вместо alert
попробуйте сделать console.log(tableString)
в конце, а затем просмотрите вывод, чтобы увидеть, является ли он допустимым HTML.
Кроме того, попробуйте прокомментировать окончательный вызов dataTable
и посмотрите, может ли функция, по крайней мере, dataTable
основную таблицу.
Если ни одна из этих проблем не решит проблему, возможно, проблема связана с вызовом XHR. msg
формируется так, как вы ожидаете? Есть ли ошибка в gg_stringformat
?
function gg_stringformat() { var argcount = arguments.length, string, i; if (!argcount) { return ""; } if (argcount === 1) { return arguments[0]; } string = arguments[0]; for (i = 1; i < argcount; i++) { string = string.replace(new RegExp('\\{' + (i - 1) + '}', 'gi'), arguments[i]); } return string; }