Initialize two different tables with a single AJAX call
I'm trying to render two different tables but with a single AJAX
call.
How to initialize two different tables but using the same source of JSON
data?
The only different of these two tables is that I filter the rows by a specific key in JSON
.
Currently my code looks like this.
var t = $('#adminKeysTable').DataTable( {
"ajax": {
"url": getKeysById,
"dataSrc": function(json) {
var rows = ;
for (var i=0;i<json.keys.length;i++) {
if (json.keys[i].privileges == '32')
rows.push(json.keys[i]);
allAdminKeys.push(json.keys[i].key);
}
return rows;
}
},
"columns": [
{ "data": null },
{ "data": "name" },
{ "data": "key" },
{ "data": null }
]
} );
var tt = $('#apiAccessKeyTable').DataTable( {
"ajax": {
"url": getKeysById,
"dataSrc": function(json) {
var rows = ;
for (var i=0;i<json.keys.length;i++) {
if (json.keys[i].privileges != '32')
rows.push(json.keys[i]);
}
return rows;
}
},
"columns": [
{ "data": null },
{ "data": "name", "className": "editable" },
{ "data": "key" },
{ "data": "externalUser", "className": "editable" },
{ "data": "privilegesArray", "className": "edit-privileges" },
{ "data": null },
{ "data": null }
]
} );
The issue with my current code is that it tends to take longer time to load the second table after the first one has done loading. I'm assuming that's because I'm making two AJAX
calls at the same time?
I'm new to AJAX
. So not sure how to make only one call to the GET
request, and use that JSON
data to initialize two separate tables.
Appreciate if someone can guide me. Thanks.
javascript jquery datatable
add a comment |
I'm trying to render two different tables but with a single AJAX
call.
How to initialize two different tables but using the same source of JSON
data?
The only different of these two tables is that I filter the rows by a specific key in JSON
.
Currently my code looks like this.
var t = $('#adminKeysTable').DataTable( {
"ajax": {
"url": getKeysById,
"dataSrc": function(json) {
var rows = ;
for (var i=0;i<json.keys.length;i++) {
if (json.keys[i].privileges == '32')
rows.push(json.keys[i]);
allAdminKeys.push(json.keys[i].key);
}
return rows;
}
},
"columns": [
{ "data": null },
{ "data": "name" },
{ "data": "key" },
{ "data": null }
]
} );
var tt = $('#apiAccessKeyTable').DataTable( {
"ajax": {
"url": getKeysById,
"dataSrc": function(json) {
var rows = ;
for (var i=0;i<json.keys.length;i++) {
if (json.keys[i].privileges != '32')
rows.push(json.keys[i]);
}
return rows;
}
},
"columns": [
{ "data": null },
{ "data": "name", "className": "editable" },
{ "data": "key" },
{ "data": "externalUser", "className": "editable" },
{ "data": "privilegesArray", "className": "edit-privileges" },
{ "data": null },
{ "data": null }
]
} );
The issue with my current code is that it tends to take longer time to load the second table after the first one has done loading. I'm assuming that's because I'm making two AJAX
calls at the same time?
I'm new to AJAX
. So not sure how to make only one call to the GET
request, and use that JSON
data to initialize two separate tables.
Appreciate if someone can guide me. Thanks.
javascript jquery datatable
simply make oneajax
request out of thedataTable
init code, store that response in a variable, then call 2 differentdataTable
with that same data
– Towkir Ahmed
Nov 15 '18 at 6:33
first make a ajax call when data is return just simply bind to Datatable.
– Negi Rox
Nov 15 '18 at 7:07
add a comment |
I'm trying to render two different tables but with a single AJAX
call.
How to initialize two different tables but using the same source of JSON
data?
The only different of these two tables is that I filter the rows by a specific key in JSON
.
Currently my code looks like this.
var t = $('#adminKeysTable').DataTable( {
"ajax": {
"url": getKeysById,
"dataSrc": function(json) {
var rows = ;
for (var i=0;i<json.keys.length;i++) {
if (json.keys[i].privileges == '32')
rows.push(json.keys[i]);
allAdminKeys.push(json.keys[i].key);
}
return rows;
}
},
"columns": [
{ "data": null },
{ "data": "name" },
{ "data": "key" },
{ "data": null }
]
} );
var tt = $('#apiAccessKeyTable').DataTable( {
"ajax": {
"url": getKeysById,
"dataSrc": function(json) {
var rows = ;
for (var i=0;i<json.keys.length;i++) {
if (json.keys[i].privileges != '32')
rows.push(json.keys[i]);
}
return rows;
}
},
"columns": [
{ "data": null },
{ "data": "name", "className": "editable" },
{ "data": "key" },
{ "data": "externalUser", "className": "editable" },
{ "data": "privilegesArray", "className": "edit-privileges" },
{ "data": null },
{ "data": null }
]
} );
The issue with my current code is that it tends to take longer time to load the second table after the first one has done loading. I'm assuming that's because I'm making two AJAX
calls at the same time?
I'm new to AJAX
. So not sure how to make only one call to the GET
request, and use that JSON
data to initialize two separate tables.
Appreciate if someone can guide me. Thanks.
javascript jquery datatable
I'm trying to render two different tables but with a single AJAX
call.
How to initialize two different tables but using the same source of JSON
data?
The only different of these two tables is that I filter the rows by a specific key in JSON
.
Currently my code looks like this.
var t = $('#adminKeysTable').DataTable( {
"ajax": {
"url": getKeysById,
"dataSrc": function(json) {
var rows = ;
for (var i=0;i<json.keys.length;i++) {
if (json.keys[i].privileges == '32')
rows.push(json.keys[i]);
allAdminKeys.push(json.keys[i].key);
}
return rows;
}
},
"columns": [
{ "data": null },
{ "data": "name" },
{ "data": "key" },
{ "data": null }
]
} );
var tt = $('#apiAccessKeyTable').DataTable( {
"ajax": {
"url": getKeysById,
"dataSrc": function(json) {
var rows = ;
for (var i=0;i<json.keys.length;i++) {
if (json.keys[i].privileges != '32')
rows.push(json.keys[i]);
}
return rows;
}
},
"columns": [
{ "data": null },
{ "data": "name", "className": "editable" },
{ "data": "key" },
{ "data": "externalUser", "className": "editable" },
{ "data": "privilegesArray", "className": "edit-privileges" },
{ "data": null },
{ "data": null }
]
} );
The issue with my current code is that it tends to take longer time to load the second table after the first one has done loading. I'm assuming that's because I'm making two AJAX
calls at the same time?
I'm new to AJAX
. So not sure how to make only one call to the GET
request, and use that JSON
data to initialize two separate tables.
Appreciate if someone can guide me. Thanks.
javascript jquery datatable
javascript jquery datatable
edited Nov 15 '18 at 6:34
jenna_3108
asked Nov 15 '18 at 6:27
jenna_3108jenna_3108
10019
10019
simply make oneajax
request out of thedataTable
init code, store that response in a variable, then call 2 differentdataTable
with that same data
– Towkir Ahmed
Nov 15 '18 at 6:33
first make a ajax call when data is return just simply bind to Datatable.
– Negi Rox
Nov 15 '18 at 7:07
add a comment |
simply make oneajax
request out of thedataTable
init code, store that response in a variable, then call 2 differentdataTable
with that same data
– Towkir Ahmed
Nov 15 '18 at 6:33
first make a ajax call when data is return just simply bind to Datatable.
– Negi Rox
Nov 15 '18 at 7:07
simply make one
ajax
request out of the dataTable
init code, store that response in a variable, then call 2 different dataTable
with that same data– Towkir Ahmed
Nov 15 '18 at 6:33
simply make one
ajax
request out of the dataTable
init code, store that response in a variable, then call 2 different dataTable
with that same data– Towkir Ahmed
Nov 15 '18 at 6:33
first make a ajax call when data is return just simply bind to Datatable.
– Negi Rox
Nov 15 '18 at 7:07
first make a ajax call when data is return just simply bind to Datatable.
– Negi Rox
Nov 15 '18 at 7:07
add a comment |
4 Answers
4
active
oldest
votes
Taking different into consideration, once you get data, you can store the data to the different variable and pass the data view to likewise you're passing.
var tt = $('#apiAccessKeyTable').DataTable( {
"ajax": {
"url": getKeysById,
"dataSrc": function(json) {
var t1rows = ;
var t2rows = ;
for (var i=0;i<json.keys.length;i++) {
if (json.keys[i].privileges != '32') {
t1rows.push(json.keys[i]); // Changed section
} else {
t2rows.push(json.keys[i]); // changed section
}
}
return rows;
}
},
"columns": [
{ "data": null },
{ "data": "name", "className": "editable" },
{ "data": "key" },
{ "data": "externalUser", "className": "editable" },
{ "data": "privilegesArray", "className": "edit-privileges" },
{ "data": null },
{ "data": null }
]
} );
Hope this helps!
add a comment |
You do 1 ajax call, split data based on condition and load Datatable with respective JSON
Something like this
var t1rows = ;
var t2rows = ;
function splitData(){
$.ajax({
url: getKeysById,
success: function(json) {
for (var i=0; i < json.keys.length ; i++) {
if (json.keys[i].privileges != '32') {
t1rows.push(json.keys[i]); // Changed section
}
else {
t2rows.push(json.keys[i]); // changed section
}
}
// load Datatables
loadDatatable1();
loadDatatable2();
}
});
}
function loadDatatable1(){
$('#apiAccessKeyTable').dataTable({
data: t1rows,
columns: [
{ data: 'userID' },
{ data: 'userName' }
]
});
}
function loadDatatable2(){
$('#adminKeysTable').dataTable({
data: t2rows,
columns: [
{ data: 'userID' },
{ data: 'userName' }
]
});
}
add a comment |
I seriously have no experience with that DataTable
method from jQuery. But you could do something like this:
$.ajax({
url: getKeysById,
success: function(json) {
var t1rows = ;
var t2rows = ;
for (var i = 0; i < json.keys.length; i++) {
if (json.keys[i].privileges != '32') {
t1rows.push(json.keys[i]); // Changed section
}
else {
t2rows.push(json.keys[i]); // changed section
}
}
callback(t1rows, t2rows);
}
});
var callback = function(data1, data2){
$('#apiAccessKeyTable').DataTable({columns: }); //add your data here: t1rows
$('#adminKeysTable').DataTable({columns: }); //add your data here: t2rows;
}
You first execute a standalone ajax call and render your tables in the success handler.
You should look at how to add a data from that jQuery datatable that didnt come from an internal ajax request. I'm assuming it'll be relatively easy. Something like:
var callback = function(data1, data2){
$('#adminKeysTable').DataTable({
dataSrc: data1,
columns:
});
$('#apiAccessKeyTable').DataTable({
dataSrc: data2,
columns:
});
}
?
This can be even further simplified but for the sake of being relatively similar to your code I'm gonna leave it as is.
add a comment |
i have modified a fiddle from answer of this Datatable - Insert JSON data to the table
You can try something like in this fiddle
https://jsfiddle.net/gx3ktawn/311/
HTML
<button id="getResults">Get Results</button>
<table id="my_logs"></table>
<table id="my_logs2"></table>
Script
var myTable = $('#my_logs').DataTable({
"paging": true,
"lengthChange": true,
"searching": true,
"ordering": true,
"info": true,
"autoWidth": true,
"data": ,
"columns": [{
"title": "Date",
"data": "log_time"
}, {
"title": "User Name",
"data": "user_name"
}, {
"title": "Class",
"data": "class_name"
}, {
"title": "Function",
"data": "class_function"
}, {
"title": "Action",
"data": "action_title"
}, {
"title": "Description",
"data": "action_description"
}]
});
var myTable2 = $('#my_logs2').DataTable({
"paging": true,
"lengthChange": true,
"searching": true,
"ordering": true,
"info": true,
"autoWidth": true,
"data": ,
"columns": [{
"title": "Date",
"data": "log_time"
}, {
"title": "Class",
"data": "class_name"
}, {
"title": "Function",
"data": "class_function"
}, {
"title": "Description",
"data": "action_description"
}]
});
$(document).ready(function() {
$("#getResults").click(function() {
$.ajax({
url: 'https://api.myjson.com/bins/ml2k2',
success: function(logs) {
myTable.clear();
$.each(logs, function(index, value) {
myTable.row.add(value);
});
myTable.draw();
myTable2.clear();
$.each(logs, function(index, value) {
myTable2.row.add(value);
});
myTable2.draw();
},
error: function(jqXHR, textStatus, ex) {
alert(textStatus + "," + ex + "," + jqXHR.responseText);
}
});
});
});
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53313619%2finitialize-two-different-tables-with-a-single-ajax-call%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
4 Answers
4
active
oldest
votes
4 Answers
4
active
oldest
votes
active
oldest
votes
active
oldest
votes
Taking different into consideration, once you get data, you can store the data to the different variable and pass the data view to likewise you're passing.
var tt = $('#apiAccessKeyTable').DataTable( {
"ajax": {
"url": getKeysById,
"dataSrc": function(json) {
var t1rows = ;
var t2rows = ;
for (var i=0;i<json.keys.length;i++) {
if (json.keys[i].privileges != '32') {
t1rows.push(json.keys[i]); // Changed section
} else {
t2rows.push(json.keys[i]); // changed section
}
}
return rows;
}
},
"columns": [
{ "data": null },
{ "data": "name", "className": "editable" },
{ "data": "key" },
{ "data": "externalUser", "className": "editable" },
{ "data": "privilegesArray", "className": "edit-privileges" },
{ "data": null },
{ "data": null }
]
} );
Hope this helps!
add a comment |
Taking different into consideration, once you get data, you can store the data to the different variable and pass the data view to likewise you're passing.
var tt = $('#apiAccessKeyTable').DataTable( {
"ajax": {
"url": getKeysById,
"dataSrc": function(json) {
var t1rows = ;
var t2rows = ;
for (var i=0;i<json.keys.length;i++) {
if (json.keys[i].privileges != '32') {
t1rows.push(json.keys[i]); // Changed section
} else {
t2rows.push(json.keys[i]); // changed section
}
}
return rows;
}
},
"columns": [
{ "data": null },
{ "data": "name", "className": "editable" },
{ "data": "key" },
{ "data": "externalUser", "className": "editable" },
{ "data": "privilegesArray", "className": "edit-privileges" },
{ "data": null },
{ "data": null }
]
} );
Hope this helps!
add a comment |
Taking different into consideration, once you get data, you can store the data to the different variable and pass the data view to likewise you're passing.
var tt = $('#apiAccessKeyTable').DataTable( {
"ajax": {
"url": getKeysById,
"dataSrc": function(json) {
var t1rows = ;
var t2rows = ;
for (var i=0;i<json.keys.length;i++) {
if (json.keys[i].privileges != '32') {
t1rows.push(json.keys[i]); // Changed section
} else {
t2rows.push(json.keys[i]); // changed section
}
}
return rows;
}
},
"columns": [
{ "data": null },
{ "data": "name", "className": "editable" },
{ "data": "key" },
{ "data": "externalUser", "className": "editable" },
{ "data": "privilegesArray", "className": "edit-privileges" },
{ "data": null },
{ "data": null }
]
} );
Hope this helps!
Taking different into consideration, once you get data, you can store the data to the different variable and pass the data view to likewise you're passing.
var tt = $('#apiAccessKeyTable').DataTable( {
"ajax": {
"url": getKeysById,
"dataSrc": function(json) {
var t1rows = ;
var t2rows = ;
for (var i=0;i<json.keys.length;i++) {
if (json.keys[i].privileges != '32') {
t1rows.push(json.keys[i]); // Changed section
} else {
t2rows.push(json.keys[i]); // changed section
}
}
return rows;
}
},
"columns": [
{ "data": null },
{ "data": "name", "className": "editable" },
{ "data": "key" },
{ "data": "externalUser", "className": "editable" },
{ "data": "privilegesArray", "className": "edit-privileges" },
{ "data": null },
{ "data": null }
]
} );
Hope this helps!
answered Nov 15 '18 at 6:34
varit05varit05
1,640816
1,640816
add a comment |
add a comment |
You do 1 ajax call, split data based on condition and load Datatable with respective JSON
Something like this
var t1rows = ;
var t2rows = ;
function splitData(){
$.ajax({
url: getKeysById,
success: function(json) {
for (var i=0; i < json.keys.length ; i++) {
if (json.keys[i].privileges != '32') {
t1rows.push(json.keys[i]); // Changed section
}
else {
t2rows.push(json.keys[i]); // changed section
}
}
// load Datatables
loadDatatable1();
loadDatatable2();
}
});
}
function loadDatatable1(){
$('#apiAccessKeyTable').dataTable({
data: t1rows,
columns: [
{ data: 'userID' },
{ data: 'userName' }
]
});
}
function loadDatatable2(){
$('#adminKeysTable').dataTable({
data: t2rows,
columns: [
{ data: 'userID' },
{ data: 'userName' }
]
});
}
add a comment |
You do 1 ajax call, split data based on condition and load Datatable with respective JSON
Something like this
var t1rows = ;
var t2rows = ;
function splitData(){
$.ajax({
url: getKeysById,
success: function(json) {
for (var i=0; i < json.keys.length ; i++) {
if (json.keys[i].privileges != '32') {
t1rows.push(json.keys[i]); // Changed section
}
else {
t2rows.push(json.keys[i]); // changed section
}
}
// load Datatables
loadDatatable1();
loadDatatable2();
}
});
}
function loadDatatable1(){
$('#apiAccessKeyTable').dataTable({
data: t1rows,
columns: [
{ data: 'userID' },
{ data: 'userName' }
]
});
}
function loadDatatable2(){
$('#adminKeysTable').dataTable({
data: t2rows,
columns: [
{ data: 'userID' },
{ data: 'userName' }
]
});
}
add a comment |
You do 1 ajax call, split data based on condition and load Datatable with respective JSON
Something like this
var t1rows = ;
var t2rows = ;
function splitData(){
$.ajax({
url: getKeysById,
success: function(json) {
for (var i=0; i < json.keys.length ; i++) {
if (json.keys[i].privileges != '32') {
t1rows.push(json.keys[i]); // Changed section
}
else {
t2rows.push(json.keys[i]); // changed section
}
}
// load Datatables
loadDatatable1();
loadDatatable2();
}
});
}
function loadDatatable1(){
$('#apiAccessKeyTable').dataTable({
data: t1rows,
columns: [
{ data: 'userID' },
{ data: 'userName' }
]
});
}
function loadDatatable2(){
$('#adminKeysTable').dataTable({
data: t2rows,
columns: [
{ data: 'userID' },
{ data: 'userName' }
]
});
}
You do 1 ajax call, split data based on condition and load Datatable with respective JSON
Something like this
var t1rows = ;
var t2rows = ;
function splitData(){
$.ajax({
url: getKeysById,
success: function(json) {
for (var i=0; i < json.keys.length ; i++) {
if (json.keys[i].privileges != '32') {
t1rows.push(json.keys[i]); // Changed section
}
else {
t2rows.push(json.keys[i]); // changed section
}
}
// load Datatables
loadDatatable1();
loadDatatable2();
}
});
}
function loadDatatable1(){
$('#apiAccessKeyTable').dataTable({
data: t1rows,
columns: [
{ data: 'userID' },
{ data: 'userName' }
]
});
}
function loadDatatable2(){
$('#adminKeysTable').dataTable({
data: t2rows,
columns: [
{ data: 'userID' },
{ data: 'userName' }
]
});
}
answered Nov 15 '18 at 6:50
MyTwoCentsMyTwoCents
3,0742930
3,0742930
add a comment |
add a comment |
I seriously have no experience with that DataTable
method from jQuery. But you could do something like this:
$.ajax({
url: getKeysById,
success: function(json) {
var t1rows = ;
var t2rows = ;
for (var i = 0; i < json.keys.length; i++) {
if (json.keys[i].privileges != '32') {
t1rows.push(json.keys[i]); // Changed section
}
else {
t2rows.push(json.keys[i]); // changed section
}
}
callback(t1rows, t2rows);
}
});
var callback = function(data1, data2){
$('#apiAccessKeyTable').DataTable({columns: }); //add your data here: t1rows
$('#adminKeysTable').DataTable({columns: }); //add your data here: t2rows;
}
You first execute a standalone ajax call and render your tables in the success handler.
You should look at how to add a data from that jQuery datatable that didnt come from an internal ajax request. I'm assuming it'll be relatively easy. Something like:
var callback = function(data1, data2){
$('#adminKeysTable').DataTable({
dataSrc: data1,
columns:
});
$('#apiAccessKeyTable').DataTable({
dataSrc: data2,
columns:
});
}
?
This can be even further simplified but for the sake of being relatively similar to your code I'm gonna leave it as is.
add a comment |
I seriously have no experience with that DataTable
method from jQuery. But you could do something like this:
$.ajax({
url: getKeysById,
success: function(json) {
var t1rows = ;
var t2rows = ;
for (var i = 0; i < json.keys.length; i++) {
if (json.keys[i].privileges != '32') {
t1rows.push(json.keys[i]); // Changed section
}
else {
t2rows.push(json.keys[i]); // changed section
}
}
callback(t1rows, t2rows);
}
});
var callback = function(data1, data2){
$('#apiAccessKeyTable').DataTable({columns: }); //add your data here: t1rows
$('#adminKeysTable').DataTable({columns: }); //add your data here: t2rows;
}
You first execute a standalone ajax call and render your tables in the success handler.
You should look at how to add a data from that jQuery datatable that didnt come from an internal ajax request. I'm assuming it'll be relatively easy. Something like:
var callback = function(data1, data2){
$('#adminKeysTable').DataTable({
dataSrc: data1,
columns:
});
$('#apiAccessKeyTable').DataTable({
dataSrc: data2,
columns:
});
}
?
This can be even further simplified but for the sake of being relatively similar to your code I'm gonna leave it as is.
add a comment |
I seriously have no experience with that DataTable
method from jQuery. But you could do something like this:
$.ajax({
url: getKeysById,
success: function(json) {
var t1rows = ;
var t2rows = ;
for (var i = 0; i < json.keys.length; i++) {
if (json.keys[i].privileges != '32') {
t1rows.push(json.keys[i]); // Changed section
}
else {
t2rows.push(json.keys[i]); // changed section
}
}
callback(t1rows, t2rows);
}
});
var callback = function(data1, data2){
$('#apiAccessKeyTable').DataTable({columns: }); //add your data here: t1rows
$('#adminKeysTable').DataTable({columns: }); //add your data here: t2rows;
}
You first execute a standalone ajax call and render your tables in the success handler.
You should look at how to add a data from that jQuery datatable that didnt come from an internal ajax request. I'm assuming it'll be relatively easy. Something like:
var callback = function(data1, data2){
$('#adminKeysTable').DataTable({
dataSrc: data1,
columns:
});
$('#apiAccessKeyTable').DataTable({
dataSrc: data2,
columns:
});
}
?
This can be even further simplified but for the sake of being relatively similar to your code I'm gonna leave it as is.
I seriously have no experience with that DataTable
method from jQuery. But you could do something like this:
$.ajax({
url: getKeysById,
success: function(json) {
var t1rows = ;
var t2rows = ;
for (var i = 0; i < json.keys.length; i++) {
if (json.keys[i].privileges != '32') {
t1rows.push(json.keys[i]); // Changed section
}
else {
t2rows.push(json.keys[i]); // changed section
}
}
callback(t1rows, t2rows);
}
});
var callback = function(data1, data2){
$('#apiAccessKeyTable').DataTable({columns: }); //add your data here: t1rows
$('#adminKeysTable').DataTable({columns: }); //add your data here: t2rows;
}
You first execute a standalone ajax call and render your tables in the success handler.
You should look at how to add a data from that jQuery datatable that didnt come from an internal ajax request. I'm assuming it'll be relatively easy. Something like:
var callback = function(data1, data2){
$('#adminKeysTable').DataTable({
dataSrc: data1,
columns:
});
$('#apiAccessKeyTable').DataTable({
dataSrc: data2,
columns:
});
}
?
This can be even further simplified but for the sake of being relatively similar to your code I'm gonna leave it as is.
edited Nov 15 '18 at 6:52
answered Nov 15 '18 at 6:41
Abana ClaraAbana Clara
1,646919
1,646919
add a comment |
add a comment |
i have modified a fiddle from answer of this Datatable - Insert JSON data to the table
You can try something like in this fiddle
https://jsfiddle.net/gx3ktawn/311/
HTML
<button id="getResults">Get Results</button>
<table id="my_logs"></table>
<table id="my_logs2"></table>
Script
var myTable = $('#my_logs').DataTable({
"paging": true,
"lengthChange": true,
"searching": true,
"ordering": true,
"info": true,
"autoWidth": true,
"data": ,
"columns": [{
"title": "Date",
"data": "log_time"
}, {
"title": "User Name",
"data": "user_name"
}, {
"title": "Class",
"data": "class_name"
}, {
"title": "Function",
"data": "class_function"
}, {
"title": "Action",
"data": "action_title"
}, {
"title": "Description",
"data": "action_description"
}]
});
var myTable2 = $('#my_logs2').DataTable({
"paging": true,
"lengthChange": true,
"searching": true,
"ordering": true,
"info": true,
"autoWidth": true,
"data": ,
"columns": [{
"title": "Date",
"data": "log_time"
}, {
"title": "Class",
"data": "class_name"
}, {
"title": "Function",
"data": "class_function"
}, {
"title": "Description",
"data": "action_description"
}]
});
$(document).ready(function() {
$("#getResults").click(function() {
$.ajax({
url: 'https://api.myjson.com/bins/ml2k2',
success: function(logs) {
myTable.clear();
$.each(logs, function(index, value) {
myTable.row.add(value);
});
myTable.draw();
myTable2.clear();
$.each(logs, function(index, value) {
myTable2.row.add(value);
});
myTable2.draw();
},
error: function(jqXHR, textStatus, ex) {
alert(textStatus + "," + ex + "," + jqXHR.responseText);
}
});
});
});
add a comment |
i have modified a fiddle from answer of this Datatable - Insert JSON data to the table
You can try something like in this fiddle
https://jsfiddle.net/gx3ktawn/311/
HTML
<button id="getResults">Get Results</button>
<table id="my_logs"></table>
<table id="my_logs2"></table>
Script
var myTable = $('#my_logs').DataTable({
"paging": true,
"lengthChange": true,
"searching": true,
"ordering": true,
"info": true,
"autoWidth": true,
"data": ,
"columns": [{
"title": "Date",
"data": "log_time"
}, {
"title": "User Name",
"data": "user_name"
}, {
"title": "Class",
"data": "class_name"
}, {
"title": "Function",
"data": "class_function"
}, {
"title": "Action",
"data": "action_title"
}, {
"title": "Description",
"data": "action_description"
}]
});
var myTable2 = $('#my_logs2').DataTable({
"paging": true,
"lengthChange": true,
"searching": true,
"ordering": true,
"info": true,
"autoWidth": true,
"data": ,
"columns": [{
"title": "Date",
"data": "log_time"
}, {
"title": "Class",
"data": "class_name"
}, {
"title": "Function",
"data": "class_function"
}, {
"title": "Description",
"data": "action_description"
}]
});
$(document).ready(function() {
$("#getResults").click(function() {
$.ajax({
url: 'https://api.myjson.com/bins/ml2k2',
success: function(logs) {
myTable.clear();
$.each(logs, function(index, value) {
myTable.row.add(value);
});
myTable.draw();
myTable2.clear();
$.each(logs, function(index, value) {
myTable2.row.add(value);
});
myTable2.draw();
},
error: function(jqXHR, textStatus, ex) {
alert(textStatus + "," + ex + "," + jqXHR.responseText);
}
});
});
});
add a comment |
i have modified a fiddle from answer of this Datatable - Insert JSON data to the table
You can try something like in this fiddle
https://jsfiddle.net/gx3ktawn/311/
HTML
<button id="getResults">Get Results</button>
<table id="my_logs"></table>
<table id="my_logs2"></table>
Script
var myTable = $('#my_logs').DataTable({
"paging": true,
"lengthChange": true,
"searching": true,
"ordering": true,
"info": true,
"autoWidth": true,
"data": ,
"columns": [{
"title": "Date",
"data": "log_time"
}, {
"title": "User Name",
"data": "user_name"
}, {
"title": "Class",
"data": "class_name"
}, {
"title": "Function",
"data": "class_function"
}, {
"title": "Action",
"data": "action_title"
}, {
"title": "Description",
"data": "action_description"
}]
});
var myTable2 = $('#my_logs2').DataTable({
"paging": true,
"lengthChange": true,
"searching": true,
"ordering": true,
"info": true,
"autoWidth": true,
"data": ,
"columns": [{
"title": "Date",
"data": "log_time"
}, {
"title": "Class",
"data": "class_name"
}, {
"title": "Function",
"data": "class_function"
}, {
"title": "Description",
"data": "action_description"
}]
});
$(document).ready(function() {
$("#getResults").click(function() {
$.ajax({
url: 'https://api.myjson.com/bins/ml2k2',
success: function(logs) {
myTable.clear();
$.each(logs, function(index, value) {
myTable.row.add(value);
});
myTable.draw();
myTable2.clear();
$.each(logs, function(index, value) {
myTable2.row.add(value);
});
myTable2.draw();
},
error: function(jqXHR, textStatus, ex) {
alert(textStatus + "," + ex + "," + jqXHR.responseText);
}
});
});
});
i have modified a fiddle from answer of this Datatable - Insert JSON data to the table
You can try something like in this fiddle
https://jsfiddle.net/gx3ktawn/311/
HTML
<button id="getResults">Get Results</button>
<table id="my_logs"></table>
<table id="my_logs2"></table>
Script
var myTable = $('#my_logs').DataTable({
"paging": true,
"lengthChange": true,
"searching": true,
"ordering": true,
"info": true,
"autoWidth": true,
"data": ,
"columns": [{
"title": "Date",
"data": "log_time"
}, {
"title": "User Name",
"data": "user_name"
}, {
"title": "Class",
"data": "class_name"
}, {
"title": "Function",
"data": "class_function"
}, {
"title": "Action",
"data": "action_title"
}, {
"title": "Description",
"data": "action_description"
}]
});
var myTable2 = $('#my_logs2').DataTable({
"paging": true,
"lengthChange": true,
"searching": true,
"ordering": true,
"info": true,
"autoWidth": true,
"data": ,
"columns": [{
"title": "Date",
"data": "log_time"
}, {
"title": "Class",
"data": "class_name"
}, {
"title": "Function",
"data": "class_function"
}, {
"title": "Description",
"data": "action_description"
}]
});
$(document).ready(function() {
$("#getResults").click(function() {
$.ajax({
url: 'https://api.myjson.com/bins/ml2k2',
success: function(logs) {
myTable.clear();
$.each(logs, function(index, value) {
myTable.row.add(value);
});
myTable.draw();
myTable2.clear();
$.each(logs, function(index, value) {
myTable2.row.add(value);
});
myTable2.draw();
},
error: function(jqXHR, textStatus, ex) {
alert(textStatus + "," + ex + "," + jqXHR.responseText);
}
});
});
});
answered Nov 15 '18 at 7:23
RAGINROSERAGINROSE
1677
1677
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53313619%2finitialize-two-different-tables-with-a-single-ajax-call%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
simply make one
ajax
request out of thedataTable
init code, store that response in a variable, then call 2 differentdataTable
with that same data– Towkir Ahmed
Nov 15 '18 at 6:33
first make a ajax call when data is return just simply bind to Datatable.
– Negi Rox
Nov 15 '18 at 7:07