まずは何をしたいか説明したいと思います。複数のAjaxレスポンスを処理します
私はテーブルがあり、1つの列にはボタンがあります。各ボタンはIDを表します。ボタンをクリックすると、IDを変数にjavascriptで格納します。このIDをMySQL文で使用して、複数の行にある情報を取得し、これらのデータを含むPDFファイルを作成します。
私は、受信したデータを処理するためにajaxを使用したいと思いますが、正確にはわかりません。
今まで、これは私が得たものである:
<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>
get_data.phpから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);
?>
これは私が何をしたいの単なる一般的な例でありません元のコード。だから私が望むのは、大抵の場合、複数の行にあるget_data.phpから取得した応答を配列に保存することです。
あなたが私の言いたいことを知っていれば幸いです。
あなたはそれが単なる一例です(「クリック」、機能(e)は{ ' –
に' jqueryのに任意のセレクタを定義していませんでした。 私はそれを処理するためにbootgridを使用..私はこの例をチェックしてください – Alex
私のポストを編集しましたこれはあなたを助けるかもしれません。https://www.phpflow.com/php/addedit-delete-record-using-bootgrid-php-mysql/ –