Abhishek6198
New Coder
I am trying to print an HTML table in my pdf. This is my code:
----------
I don't get this. My HTML table is updated every time the response is fetched from my
JavaScript:
let a = 0;
let b = 0;
let c = 0;
let table = document.getElementById('pol_table');
const doc = new jsPDF();
date.onchange = evt => {
$.ajax({
url: '/server.php',
type: 'POST',
data:{ "input":"fetch data", "date": evt.target.value},
success: function(response){
const arr = JSON.parse(response);
a = arr[0];
b = arr[1];
c = arr[2];
},
complete: function(){}
})
}
document.getElementById('generate').addEventListener('click',async function(){
if(table.rows.length>0){
while(table.rows.length!=0){
table.deleteRow(0);
}
}
var row = table.insertRow(0);
var cell = row.insertCell(0);
var cell1 = row.insertCell(1);
var cell2 = row.insertCell(2);
var cell3 = row.insertCell(3);
cell.style.textAlign = "center";
cell1.style.textAlign = "center";
cell2.style.textAlign = "center";
cell3.style.textAlign = "center";
cell.innerHTML = "<b>Sl</b>";
cell1.innerHTML = "<b>Positive</b>";
cell2.innerHTML = "<b>Negative</b>";
cell3.innerHTML = "<b>Neutral</b>";
var row1 = table.insertRow(1);
var cell = row1.insertCell(0);
var cell1 = row1.insertCell(1);
var cell2 = row1.insertCell(2);
var cell3 = row1.insertCell(3);
cell.style.textAlign = "center";
cell1.style.textAlign = "center";
cell2.style.textAlign = "center";
cell3.style.textAlign = "center";
cell.innerText = "1";
cell1.innerText = a;
cell2.innerText = b;
cell3.innerText = c;
console.log(table); //shows the updated table every time
/*----THE UPDATED TABLE DOESN'T REFLECT HERE---------*/
doc.autoTable({
html: '#pol_table',
startX: 10,
startY: 15,
theme: 'grid',
bodyStyles: {lineColor: [0, 0, 0]},
styles: {
cellWidth: 'auto',
fontSize: 15
}
})
/*------------------------------------------*/
/*------------------------------------------------------------*/
doc.text(10,15,a+" "+b+" "+" "+c); //this also outdated
doc.save("report.pdf");
/*-------------------------------------------------------------*/
})
----------
- I select a
dateand generate pdf, it shows the correct data. - Now I select another
dateand generate pdf, it shows the data fetched for the previous date.
I don't get this. My HTML table is updated every time the response is fetched from my
server.php. So why is the previous data always printed in my pdf?