Zuerst möchte ich beschreiben, was ich tun möchte.behandeln mehr als eine Ajax-Antwort
Ich habe eine Tabelle und eine Spalte hat Tasten. Jeder Button repräsentiert eine ID. Wenn die Schaltfläche angeklickt wird, speichere ich die ID in einer Variablen in Javascript. Ich möchte diese ID in einer MySQL-Anweisung verwenden, um einige Informationen zu erhalten, die sich in mehr als einer Zeile befinden und eine PDF-Datei mit diesen Daten erstellen.
Ich möchte Ajax verwenden, um die empfangenen Daten zu verarbeiten, aber ich weiß nicht genau, wie.
Bis jetzt ist es das, was ich habe:
<script>
$("#grid-table").bootgrid({
formatters: {
"buttonID": function(column, row){
return "<button type=\"button\" id=\"edit\" class=\"btn btn-xs btn-default print-pdf\" + data-row-id1=\"" + row.ID + "\" ><span class=\"fa fa-file-pdf-o\"></span></button> ";
}
}).on("click", function(e){
var id = $(this).data("row-id1"); // id is a string
var recv_data1[];
var recv_data2[];
var recv_data3[];
var recv_data4[];
var i = 0;
if(id != ""){
xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function(){
if (this.readyState == 4 && this.status == 200) {
// how to get all datas and store them here?
// and get the count of $i
var doc = new jsPDF(); // pdf object
mainPage(doc); // my function to create a pdf background
var xPos = 25;
var yPos = 60;
while(i){
doc.setFontSize(12);
doc.setFontType('normal');
doc.text(70, 55, recv_data1[i]); // here I want to use some of the data
doc.setFontSize(11);
doc.setFontType('bold');
doc.text(xPos+10, yPos+10, recv_data2[i]); // some more data I got from the mysql-statement
doc.text(xPos+55, yPos+10, recv_data3[i]);
doc.text(xPos+80, yPos+10, recv_data4[i]);
i--;
}
doc.save(recv_data1 + '.pdf'); // save pdf file
}
};
xmlhttp.open("GET","get_data.php?id="+ id, true);
xmlhttp.send();
}
});
</script>
PHP-Teil von get_data.php:
<?php
include "dbconnect.php";
$revc_id = htmlspecialchars_decode($_GET['id']);
$result = mysqli_query($db, "SELECT *
FROM table
WHERE table.id = 'revc_id';");
$i = 1;
while($row = mysqli_fetch_array($result)) {
// how to handle the fetched array and alle the data to
// more than one variable for the js like
// echo $row['name'] for recv_data1[]
// echo $row['city'] for recv_data2[]
// echo $row['street'] for recv_data3[]
// echo $row['country'] for recv_data4[]
// echo $i to know how many datas are in there
$i++;
}
mysqli_close($db);
?>
Dies ist nur ein allgemeines Beispiel dafür, was ich tun möchte, und nicht die Originalcode. Also was ich will ist, dass die Antwort, die ich von get_data.php erhalten habe, was in den meisten Fällen mehr als eine Zeile ist, in das Array gespeichert werden soll.
Ich hoffe, Sie wissen, was ich meine, wenn nicht frei, bitte zu fragen.
Sie haben definieren keine Wähler auf jquery 'auf („Klick“, function (e) {' –
es ist nur ein Beispiel. ich bootgrid verwenden, um damit zu umgehen .. ich bearbeitet meinen Beitrag – Alex
prüfen dieses Beispiel das kann dir helfen https://www.phpflow.com/php/addedit-delete-record-using-bootgrid-php-mysql/ –