|
|
|
Datatable SeverSide 4 เงื่อนไขทำอย่างไรครับ ทำได้แต่เงื่อนไขเดียวครับ |
|
|
|
|
|
|
|
Datatable.php
<?php
require('../../connect.php');
$table = 'record';
$primaryKey = 'id';
// รับค่า ID จาก admin.php
if(isset($_GET['term'])){
$term = mysqli_real_escape_string($con, $_GET['term']);
} else {
$term = '';
}
if(isset($_GET['date'])){
$date = mysqli_real_escape_string($con, $_GET['date']);
} else {
$date = '';
}
if(isset($_GET['class'])){
$class = mysqli_real_escape_string($con, $_GET['class']);
} else {
$class = '';
}
if(isset($_GET['room'])){
$room = mysqli_real_escape_string($con, $_GET['room']);
} else {
$room = '';
}
$sql = "SELECT * FROM `record` WHERE `term` = '$term' AND `date` = '$date' AND `class` = '$class' AND `room` = '$room'";
$columns = array(
array( 'db' => 'id', 'dt' => 0 ),
array( 'db' => 'classroom', 'dt' => 1 ),
array( 'db' => 'period', 'dt' => 2 ),
array( 'db' => 'subject', 'dt' => 3 ),
array( 'db' => 'teacher', 'dt' => 4 ),
array( 'db' => 's-all', 'dt' => 5 ),
array( 'db' => 's-in', 'dt' => 6 ),
array( 'db' => 'img', 'dt' => 7,
'formatter' => function( $d, $row) {
return '<img class=\'zoom\' src=\'upload/lfh/'.$d.'\' style=\'width:200px;\'/>';
}),
array(
'db' => 'id',
'dt' => 8,
'formatter' => function( $d, $row) {
return '<button onclick="DeleteRec(\'' . $d . '\')" class="btn btn-sm btn-danger"> <i class="pr-1 fas fa-trash"></i>ลบ</button>';
})
);
$sql_details = array(
'user' => $user,
'pass' => $passwd,
'db' => $db,
'host' => $host
);
require( '../../datatable/ssp.class.php' );
echo json_encode(
SSP::complex( $_GET, $sql_details, $table, $primaryKey, $columns, "`term` = '$term'", "`date` = '$date'", "`class` = '$class'", "`room` = '$room'")
);
?>
Tag : PHP
|
ประวัติการแก้ไข 2021-06-27 12:04:11
|
|
|
|
|
Date :
2021-06-27 12:01:12 |
By :
jgogo01 |
View :
1116 |
Reply :
22 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าอ้างอิงจากไฟล์ตัวอย่าง บรรทัดนี้ไม่มีประโยชน์
Code
$sql = "SELECT * FROM `record` WHERE `term` = '$term' AND `date` = '$date' AND `class` = '$class' AND `room` = '$room'";
(เว้นแต่จะสร้างเมธอดใหม่ใน SSP class สำหรับ full query ขึ้นมาเอง)
เพราะเมธอด complex จาก SSP class มี signature แบบนี้
Quote:static function complex ( $request, $conn, $table, $primaryKey, $columns, $whereResult=null, $whereAll=null )
สีแดงคือ where clause สามารถเป็น array หรือ string
เพราะมีการส่งพารามิเตอร์ไป _flatten ซึ่งมีหน้าตาแบบนี้
static function _flatten ( $a, $join = ' AND ' )
{
if ( ! $a ) {
return ''; // ถ้าไม่เป็นจริง (หมายถึง null, 0, ...) ส่งกลับค่าว่าง
}
else if ( $a && is_array($a) ) {
return implode( $join, $a ); // ถ้าเป็น array เชื่อมด้วย ' AND '
}
return $a; // ถ้าเป็น string ให้ bypass
}
https://github.com/DataTables/DataTablesSrc/blob/master/examples/server_side/scripts/ssp.class.php#L320
ดังนั้น เป้าหมายเราคืออากิวเมนต์ $whereAll และส่งไปแบบ array ในลักษณะนี้
Code (PHP)
SSP::complex( $_GET, $sql_details, $table, $primaryKey, $columns, null, ["`term` = '$term'", "`date` = '$date'", "`class` = '$class'", "`room` = '$room'"])
ไม่ได้เช็คไวยากรณ์ให้ถ้า error อะไรก็ปรับแต่งเอานะ
|
|
|
|
|
Date :
2021-06-27 13:31:23 |
By :
TheGreatGod_of_Death |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 1 เขียนโดย : TheGreatGod_of_Death เมื่อวันที่ 2021-06-27 13:31:23
รายละเอียดของการตอบ ::
ถ้าอย่างตัวแปร room ผมให้ผู้ใช้เลือกก็ได้ หรือ ไม่เลือกก็ได้ครับ มันก็จะไม่ตรงเงื่อนไขนี้สิครับ ทำอย่างไรดี
?room=""
Code (PHP)
<?php
require('../../connect.php');
$table = 'record';
$primaryKey = 'id';
// รับค่า ID จาก admin.php
if(isset($_GET['term'])){
$term = mysqli_real_escape_string($con, $_GET['term']);
} else {
$term = '';
}
if(isset($_GET['date'])){
$date = mysqli_real_escape_string($con, $_GET['date']);
} else {
$date = '';
}
if(isset($_GET['class'])){
$class = mysqli_real_escape_string($con, $_GET['class']);
} else {
$class = '';
}
if(isset($_GET['room'])){
$room = mysqli_real_escape_string($con, $_GET['room']);
} else {
$room = '';
}
// $sql = "SELECT * FROM `record` WHERE `term` = '$term' AND `date` = '$date' AND `class` = '$class' AND `room` = '$room'";
$columns = array(
array( 'db' => 'id', 'dt' => 0 ),
array( 'db' => 'classroom', 'dt' => 1 ),
array( 'db' => 'period', 'dt' => 2 ),
array( 'db' => 'subject', 'dt' => 3 ),
array( 'db' => 'teacher', 'dt' => 4 ),
array( 'db' => 's-all', 'dt' => 5 ),
array( 'db' => 's-in', 'dt' => 6 ),
array( 'db' => 'img', 'dt' => 7,
'formatter' => function( $d, $row) {
return '<img class=\'zoom\' src=\'upload/lfh/'.$d.'\' style=\'width:200px;\'/>';
}),
array(
'db' => 'id',
'dt' => 8,
'formatter' => function( $d, $row) {
return '<button onclick="DeleteRec(\'' . $d . '\')" class="btn btn-sm btn-danger"> <i class="pr-1 fas fa-trash"></i>ลบ</button>';
})
);
$sql_details = array(
'user' => $user,
'pass' => $passwd,
'db' => $db,
'host' => $host
);
require( '../../datatable/ssp.class.php' );
echo json_encode(
SSP::complex( $_GET, $sql_details, $table, $primaryKey, $columns, null, ["`term` = '$term'", "`date` = '$date'", "`class` = '$class'", "`room` = '$room'"])
);
?>
|
|
|
|
|
Date :
2021-06-27 14:29:30 |
By :
jgogo01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 3 เขียนโดย : jgogo01 เมื่อวันที่ 2021-06-27 14:36:25
รายละเอียดของการตอบ ::
Code (Java)
<!-- Script DataTable loadadmin-->
<script>
$(document).ready(function() {
var table = $('#record').DataTable( {
"processing": true,
"serverSide": true,
"ajax": "sql/admin/loadrec.php?term=<?php echo (isset($_GET['term']) ? $_GET['term'] : '');?>&date=<?php echo (isset($_GET['date']) ? $_GET['date'] : '');?>&class<?php echo (isset($_GET['class']) ? $_GET['class'] : '');?><?php echo (isset($_GET['room']) ? '&room='.$_GET['room'] : '');?>",
"language" : {
"emptyTable": "ไม่มีข้อมูลในตาราง",
"info": "แสดง _START_ ถึง _END_ จาก _TOTAL_ แถว",
"infoEmpty": "แสดง 0 ถึง 0 จาก 0 แถว",
"infoFiltered": "(กรองข้อมูล _MAX_ ทุกแถว)",
"infoThousands": ",",
"lengthMenu": "แสดง _MENU_ แถว",
"loadingRecords": "กำลังโหลดข้อมูล...",
"processing": "กำลังดำเนินการ...",
"search": "ค้นหา: ",
"zeroRecords": "ไม่พบข้อมูล",
"paginate": {
"first": "หน้าแรก",
"previous": "ก่อนหน้า",
"next": "ถัดไป",
"last": "หน้าสุดท้าย"
},
"aria": {
"sortAscending": ": เปิดใช้งานการเรียงข้อมูลจากน้อยไปมาก",
"sortDescending": ": เปิดใช้งานการเรียงข้อมูลจากมากไปน้อย"
},
"autoFill": {
"cancel": "ยกเลิก",
"fill": "กรอกทุกช่องด้วย",
"fillHorizontal": "กรอกตามแนวนอน",
"fillVertical": "กรอกตามแนวตั้ง",
"info": "ข้อมูลเพิ่มเติม"
},
"buttons": {
"collection": "ชุดข้อมูล",
"colvis": "การมองเห็นคอลัมน์",
"colvisRestore": "เรียกคืนการมองเห็น",
"copy": "คัดลอก",
"copyKeys": "กดปุ่ม Ctrl หรือ Command + C เพื่อคัดลอกข้อมูลบนตารางไปยัง Clipboard ที่เครื่องของคุณ"
}
},
"order": [[ 0, "asc" ]],
"columns": [
{ "width": "5%" },
{ "width": "5%" },
{ "width": "5%" },
{ "width": "25%" },
{ "width": "25%" },
{ "width": "5%" },
{ "width": "5%" },
{ "width": "15%" },
{ "width": "10%" }
],
"order": [[ 0, 'desc' ]],
responsive: true,
} );
table.on( 'order.dt search.dt', function () {
table.column(0, {search:'applied', order:'applied'}).nodes().each( function (cell, i) {
cell.innerHTML = i+1;
} );
} ).draw();
} );
</script>
|
|
|
|
|
Date :
2021-06-27 14:38:13 |
By :
jgogo01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 5 เขียนโดย : TheGreatGod_of_Death เมื่อวันที่ 2021-06-27 15:35:56
รายละเอียดของการตอบ ::
Code (PHP)
<?php
require('../../connect.php');
$table = 'record';
$primaryKey = 'id';
// รับค่า ID จาก admin.php
if(isset($_GET['term'])){
$term = mysqli_real_escape_string($con, $_GET['term']);
} else {
$term = '';
}
if(isset($_GET['date'])){
$date = mysqli_real_escape_string($con, $_GET['date']);
} else {
$date = '';
}
if(isset($_GET['class'])){
$class = mysqli_real_escape_string($con, $_GET['class']);
} else {
$class = '';
}
if(isset($_GET['room'])){
$room = mysqli_real_escape_string($con, $_GET['room']);
} else {
$room = '';
}
// $sql = "SELECT * FROM `record` WHERE `term` = '$term' AND `date` = '$date' AND `class` = '$class' AND `room` = '$room'";
$columns = array(
array( 'db' => 'id', 'dt' => 0 ),
array( 'db' => 'classroom', 'dt' => 1 ),
array( 'db' => 'period', 'dt' => 2 ),
array( 'db' => 'subject', 'dt' => 3 ),
array( 'db' => 'teacher', 'dt' => 4 ),
array( 'db' => 's-all', 'dt' => 5 ),
array( 'db' => 's-in', 'dt' => 6 ),
array( 'db' => 'img', 'dt' => 7,
'formatter' => function( $d, $row) {
return '<img class=\'zoom\' src=\'upload/lfh/'.$d.'\' style=\'width:200px;\'/>';
}),
array(
'db' => 'id',
'dt' => 8,
'formatter' => function( $d, $row) {
return '<button onclick="DeleteRec(\'' . $d . '\')" class="btn btn-sm btn-danger"> <i class="pr-1 fas fa-trash"></i>ลบ</button>';
})
);
$sql_details = array(
'user' => $user,
'pass' => $passwd,
'db' => $db,
'host' => $host
);
require( '../../datatable/ssp.class.php' );
$t = "term = '$term'";
$d = "date = '$date'";
$c = "class = '$class'";
$str = $t . ', ' . $d . ', ' . $c;
$arr = explode(', ', $str);
$where = array_values(array_filter($arr, 'strlen'));
echo json_encode(
SSP::complex( $_GET, $sql_details, $table, $primaryKey, $columns, $where)
);
?>
แบบนี้พอเข้าใจถูกไหมครับ ?
|
|
|
|
|
Date :
2021-06-27 19:19:34 |
By :
jgogo01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 7 เขียนโดย : TheGreatGod_of_Death เมื่อวันที่ 2021-06-27 19:49:33
รายละเอียดของการตอบ ::
Code (PHP)
<?php
require('../../connect.php');
$table = 'record';
$primaryKey = 'id';
// รับค่า ID จาก admin.php
if(isset($_GET['term'])){
$term = mysqli_real_escape_string($con, $_GET['term']);
} else {
$term = '';
}
if(isset($_GET['date'])){
$date = mysqli_real_escape_string($con, $_GET['date']);
} else {
$date = '';
}
if(isset($_GET['class'])){
$class = mysqli_real_escape_string($con, $_GET['class']);
} else {
$class = '';
}
if(isset($_GET['room'])){
$room = mysqli_real_escape_string($con, $_GET['room']);
} else {
$room = '';
}
$columns = array(
array( 'db' => 'id', 'dt' => 0 ),
array( 'db' => 'classroom', 'dt' => 1 ),
array( 'db' => 'period', 'dt' => 2 ),
array( 'db' => 'subject', 'dt' => 3 ),
array( 'db' => 'teacher', 'dt' => 4 ),
array( 'db' => 's-all', 'dt' => 5 ),
array( 'db' => 's-in', 'dt' => 6 ),
array( 'db' => 'img', 'dt' => 7,
'formatter' => function( $d, $row) {
return '<img class=\'zoom\' src=\'upload/lfh/'.$d.'\' style=\'width:200px;\'/>';
}),
array(
'db' => 'id',
'dt' => 8,
'formatter' => function( $d, $row) {
return '<button onclick="DeleteRec(\'' . $d . '\')" class="btn btn-sm btn-danger"> <i class="pr-1 fas fa-trash"></i>ลบ</button>';
})
);
$sql_details = array(
'user' => $user,
'pass' => $passwd,
'db' => $db,
'host' => $host
);
require( '../../datatable/ssp.class.php' );
$t = ($term == "") ? "" : "term = '$term'";
$d = ($date == "") ? "" : "date = '$date'";
$c = ($class == "") ? "" : "class = '$class'";
$str = $t . ', ' . $d . ', ' . $c;
$arr = explode(', ', $str);
$where = array_values(array_filter($arr, 'strlen'));
echo json_encode(
SSP::complex( $_GET, $sql_details, $table, $primaryKey, $columns, null, $where)
);
?>
ตอนนี้ตารางแสดงแล้วครับ แต่เราทำเงื่อนไขอย่างไรครับ ตอนนี้ลองส่งค่าไป ตารางก็แสดงข้อมูลออกมาหมดเลยครับ
ต้องการให้ Date / Class / term ต้องเลือกเสมอ
room เลือกหรือไม่ก็ได้ครับ
|
|
|
|
|
Date :
2021-06-27 20:24:02 |
By :
jgogo01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ternary operator ก็คือเงื่อนไข ถ้าเลือกเสมอก็ไม่ต้องใช้
Code (PHP)
$t = "term = '$term'"; // เลือกเสมอ ไม่ต้องมีเงื่อนไข
$d = "date = '$date'"; //ยังไงก็มีข้อมูล
$c = "class = '$class'"; // ฟันธงว่าข้อมูลมาแน่
$r = ($room == "") ? "" : "room = '$room'"; // ไม่แน่นอน เป็นได้ทั้ง มีและไม่มี ต้องเช็ค
$str = $t . ', ' . $d . ', ' . $c . ', ' . $r; // เพิ่ม $room กรณีมีข้อมูล
//...
|
|
|
|
|
Date :
2021-06-27 22:11:59 |
By :
TheGreatGod_of_Death |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 9 เขียนโดย : TheGreatGod_of_Death เมื่อวันที่ 2021-06-27 22:11:59
รายละเอียดของการตอบ ::
/loadrec.php?term=1%2F2564&date=2021-06-27&class=5&room=2 ข้อมูลหน้านี้ปกติครับตามเงื่อนไข
แต่ข้อมูลไม่มายังตารางครับ
Code (PHP)
<?php
require('../../connect.php');
$table = 'record';
$primaryKey = 'id';
// รับค่า ID จาก admin.php
if(isset($_GET['term'])){
$term = mysqli_real_escape_string($con, $_GET['term']);
} else {
$term = '';
}
if(isset($_GET['date'])){
$date = mysqli_real_escape_string($con, $_GET['date']);
} else {
$date = '';
}
if(isset($_GET['class'])){
$class = mysqli_real_escape_string($con, $_GET['class']);
} else {
$class = '';
}
if(isset($_GET['room'])){
$room = mysqli_real_escape_string($con, $_GET['room']);
} else {
$room = '';
}
$columns = array(
array( 'db' => 'id', 'dt' => 0 ),
array( 'db' => 'classroom', 'dt' => 1 ),
array( 'db' => 'period', 'dt' => 2 ),
array( 'db' => 'subject', 'dt' => 3 ),
array( 'db' => 'teacher', 'dt' => 4 ),
array( 'db' => 's-all', 'dt' => 5 ),
array( 'db' => 's-in', 'dt' => 6 ),
array( 'db' => 'img', 'dt' => 7,
'formatter' => function( $d, $row) {
return '<img class=\'zoom\' src=\'upload/lfh/'.$d.'\' style=\'width:200px;\'/>';
}),
array(
'db' => 'id',
'dt' => 8,
'formatter' => function( $d, $row) {
return '<button onclick="DeleteRec(\'' . $d . '\')" class="btn btn-sm btn-danger"> <i class="pr-1 fas fa-trash"></i>ลบ</button>';
})
);
$sql_details = array(
'user' => $user,
'pass' => $passwd,
'db' => $db,
'host' => $host
);
require( '../../datatable/ssp.class.php' );
$t = "term = '$term'";
$d = "date = '$date'";
$c = "class = '$class'";
$r = ($room == "") ? "" : "room = '$room'";
$str = $t . ', ' . $d . ', ' . $c . ', ' . $r;
$arr = explode(', ', $str);
$where = array_values(array_filter($arr, 'strlen'));
echo json_encode(
SSP::complex( $_GET, $sql_details, $table, $primaryKey, $columns, null, $where)
);
?>
|
|
|
|
|
Date :
2021-06-27 22:22:47 |
By :
jgogo01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 10 เขียนโดย : jgogo01 เมื่อวันที่ 2021-06-27 22:22:47
รายละเอียดของการตอบ ::
Script ตารางครับ
Code (Java)
<!-- Script DataTable loadadmin-->
<script>
$(document).ready(function() {
var table = $('#record').DataTable( {
"processing": true,
"serverSide": true,
"ajax": "sql/admin/loadrec.php?term=<?php echo (isset($_GET['term']) ? $_GET['term'] : '');?>&date=<?php echo (isset($_GET['date']) ? $_GET['date'] : '');?>&class<?php echo (isset($_GET['class']) ? $_GET['class'] : '');?><?php echo (isset($_GET['room']) ? '&room='.$_GET['room'] : '');?>",
"language" : {
"emptyTable": "ไม่มีข้อมูลในตาราง",
"info": "แสดง _START_ ถึง _END_ จาก _TOTAL_ แถว",
"infoEmpty": "แสดง 0 ถึง 0 จาก 0 แถว",
"infoFiltered": "(กรองข้อมูล _MAX_ ทุกแถว)",
"infoThousands": ",",
"lengthMenu": "แสดง _MENU_ แถว",
"loadingRecords": "กำลังโหลดข้อมูล...",
"processing": "กำลังดำเนินการ...",
"search": "ค้นหา: ",
"zeroRecords": "ไม่พบข้อมูล",
"paginate": {
"first": "หน้าแรก",
"previous": "ก่อนหน้า",
"next": "ถัดไป",
"last": "หน้าสุดท้าย"
},
"aria": {
"sortAscending": ": เปิดใช้งานการเรียงข้อมูลจากน้อยไปมาก",
"sortDescending": ": เปิดใช้งานการเรียงข้อมูลจากมากไปน้อย"
},
"autoFill": {
"cancel": "ยกเลิก",
"fill": "กรอกทุกช่องด้วย",
"fillHorizontal": "กรอกตามแนวนอน",
"fillVertical": "กรอกตามแนวตั้ง",
"info": "ข้อมูลเพิ่มเติม"
},
"buttons": {
"collection": "ชุดข้อมูล",
"colvis": "การมองเห็นคอลัมน์",
"colvisRestore": "เรียกคืนการมองเห็น",
"copy": "คัดลอก",
"copyKeys": "กดปุ่ม Ctrl หรือ Command + C เพื่อคัดลอกข้อมูลบนตารางไปยัง Clipboard ที่เครื่องของคุณ"
}
},
"order": [[ 0, "asc" ]],
"columns": [
{ "width": "5%" },
{ "width": "5%" },
{ "width": "5%" },
{ "width": "25%" },
{ "width": "25%" },
{ "width": "5%" },
{ "width": "5%" },
{ "width": "15%" },
{ "width": "10%" }
],
"order": [[ 0, 'desc' ]],
responsive: true,
} );
table.on('draw.dt', function () {
var info = table.page.info();
table.column(0, { search: 'applied', order: 'applied', page: 'applied' }).nodes().each(function (cell, i) {
cell.innerHTML = i + 1 + info.start;
});
});
} );
</script>
|
|
|
|
|
Date :
2021-06-27 22:25:24 |
By :
jgogo01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าเช็คค่าว่างทั้งหมด ($t, $d, $c, $r) ได้ผลอย่างไร
|
|
|
|
|
Date :
2021-06-28 13:12:52 |
By :
TheGreatGod_of_Death |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ค่า id ต่าง ๆ เข้าปกตินะครับ จากที่ลอง Echo ดูครับ
loadrec.php
<?php
require('../../connect.php');
$table = 'record';
$primaryKey = 'id';
// รับค่า ID จาก admin.php
if(isset($_GET['term'])){
$term = mysqli_real_escape_string($con, $_GET['term']);
} else {
$term = '';
}
if(isset($_GET['date'])){
$date = mysqli_real_escape_string($con, $_GET['date']);
} else {
$date = '';
}
if(isset($_GET['class'])){
$class = mysqli_real_escape_string($con, $_GET['class']);
} else {
$class = '';
}
if(isset($_GET['room'])){
$room = mysqli_real_escape_string($con, $_GET['room']);
} else {
$room = '';
}
$columns = array(
array( 'db' => 'id', 'dt' => 0 ),
array( 'db' => 'classroom', 'dt' => 1 ),
array( 'db' => 'period', 'dt' => 2 ),
array( 'db' => 'subject', 'dt' => 3 ),
array( 'db' => 'teacher', 'dt' => 4 ),
array( 'db' => 's-all', 'dt' => 5 ),
array( 'db' => 's-in', 'dt' => 6 ),
array( 'db' => 'img', 'dt' => 7,
'formatter' => function( $d, $row) {
return '<img class=\'zoom\' src=\'upload/lfh/'.$d.'\' style=\'width:200px;\'/>';
}),
array(
'db' => 'id',
'dt' => 8,
'formatter' => function( $d, $row) {
return '<button onclick="DeleteRec(\'' . $d . '\')" class="btn btn-sm btn-danger"> <i class="pr-1 fas fa-trash"></i>ลบ</button>';
})
);
$sql_details = array(
'user' => $user,
'pass' => $passwd,
'db' => $db,
'host' => $host
);
require( '../../datatable/ssp.class.php' );
$t = ($term == "") ? "" : "term = '$term'";
$d = ($date == "") ? "" : "date = '$date'";
$c = ($class == "") ? "" : "class = '$class'";
$r = ($room == "") ? "" : "room = '$room'";
echo"$t $d $c $r";
$str = $t . ', ' . $d . ', ' . $c . ', ' . $r;
$arr = explode(', ', $str);
$where = array_values(array_filter($arr, 'strlen'));
echo json_encode(
SSP::complex( $_GET, $sql_details, $table, $primaryKey, $columns, null,$where)
);
?>
ผลลัพธ์หน้า loadrec.php
|
|
|
|
|
Date :
2021-06-28 15:23:01 |
By :
jgogo01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ก่อนมี where ข้อมูลออกตารางหรือไม่
ถ้าไม่...หากใช้ simple class ออกตารางหรือไม่
Code (PHP)
SSP::simple( $_GET, $sql_details, $table, $primaryKey, $columns )
|
|
|
|
|
Date :
2021-06-28 15:31:52 |
By :
TheGreatGod_of_Death |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าเอาไว้แค่นี้ล่ะ
Code (JavaScript)
"ajax": "sql/admin/loadrec.php", // ลองใส่แบบมี / นำหน้าด้วย และไม่ต้องมี query string
แล้วทดสอบเหมือนเดิมทั้ง มีและไม่มี where
|
ประวัติการแก้ไข 2021-06-28 15:58:17
|
|
|
|
Date :
2021-06-28 15:56:06 |
By :
TheGreatGod_of_Death |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้แล้วครับผม ^^ ขอบคุณครับผม
Script
<!-- Script DataTable loadadmin-->
<!-- Script DataTable loadadmin-->
<script>
$(document).ready(function() {
var table = $('#record').DataTable( {
"processing": true,
"serverSide": true,
"ajax": "sql/admin/loadrec.php?term=<?php echo (isset($_GET['term']) ? $_GET['term'] : '');?>&date=<?php echo (isset($_GET['date']) ? $_GET['date'] : '');?>&class=<?php echo (isset($_GET['class']) ? $_GET['class'] : '');?><?php echo (isset($_GET['room']) ? '&room='.$_GET['room'] : '');?>",
"language" : {
"emptyTable": "ไม่มีข้อมูลในตาราง",
"info": "แสดง _START_ ถึง _END_ จาก _TOTAL_ แถว",
"infoEmpty": "แสดง 0 ถึง 0 จาก 0 แถว",
"infoFiltered": "(กรองข้อมูล _MAX_ ทุกแถว)",
"infoThousands": ",",
"lengthMenu": "แสดง _MENU_ แถว",
"loadingRecords": "กำลังโหลดข้อมูล...",
"processing": "กำลังดำเนินการ...",
"search": "ค้นหา: ",
"zeroRecords": "ไม่พบข้อมูล",
"paginate": {
"first": "หน้าแรก",
"previous": "ก่อนหน้า",
"next": "ถัดไป",
"last": "หน้าสุดท้าย"
},
"aria": {
"sortAscending": ": เปิดใช้งานการเรียงข้อมูลจากน้อยไปมาก",
"sortDescending": ": เปิดใช้งานการเรียงข้อมูลจากมากไปน้อย"
},
"autoFill": {
"cancel": "ยกเลิก",
"fill": "กรอกทุกช่องด้วย",
"fillHorizontal": "กรอกตามแนวนอน",
"fillVertical": "กรอกตามแนวตั้ง",
"info": "ข้อมูลเพิ่มเติม"
},
"buttons": {
"collection": "ชุดข้อมูล",
"colvis": "การมองเห็นคอลัมน์",
"colvisRestore": "เรียกคืนการมองเห็น",
"copy": "คัดลอก",
"copyKeys": "กดปุ่ม Ctrl หรือ Command + C เพื่อคัดลอกข้อมูลบนตารางไปยัง Clipboard ที่เครื่องของคุณ"
}
},
"order": [[ 2, "desc" ]],
"columns": [
{ "width": "5%" },
{ "width": "5%" },
{ "width": "5%" },
{ "width": "25%" },
{ "width": "25%" },
{ "width": "5%" },
{ "width": "5%" },
{ "width": "15%" },
{ "width": "10%" }
],
responsive: true
} );
table.on('draw.dt', function () {
var info = table.page.info();
table.column(0, { search: 'applied', order: 'applied', page: 'applied' }).nodes().each(function (cell, i) {
cell.innerHTML = i + 1 + info.start;
});
});
} );
</script>
loadrec.php
<?php
require('../../connect.php');
$table = 'record';
$primaryKey = 'id';
// รับค่า ID จาก admin.php
if(isset($_GET['term'])){
$term = mysqli_real_escape_string($con, $_GET['term']);
} else {
$term = '';
}
if(isset($_GET['date'])){
$date = mysqli_real_escape_string($con, $_GET['date']);
} else {
$date = '';
}
if(isset($_GET['class'])){
$class = mysqli_real_escape_string($con, $_GET['class']);
} else {
$class = '';
}
if(isset($_GET['room'])){
$room = mysqli_real_escape_string($con, $_GET['room']);
} else {
$room = '';
}
$columns = array(
array( 'db' => 'id', 'dt' => 0 ),
array( 'db' => 'classroom', 'dt' => 1 ),
array( 'db' => 'period', 'dt' => 2 ),
array( 'db' => 'subject', 'dt' => 3 ),
array( 'db' => 'teacher', 'dt' => 4 ),
array( 'db' => 's-all', 'dt' => 5 ),
array( 'db' => 's-in', 'dt' => 6 ),
array(
'db' => 'id',
'dt' => 7,
'formatter' => function( $d, $row ) {
return '
<button type="button" class="btn btn-sm btn-danger" data-toggle="modal" data-target="#DeleteS" data-whatever="'.$d.'"> <i class="fas fa-trash"></i> ลบ </button>';
}),
array(
'db' => 'id',
'dt' => 8,
'formatter' => function( $d, $row ) {
return '
<button type="button" class="btn btn-sm btn-warning" data-toggle="modal" data-target="#EditS" data-whatever="'.$d.'"> <i class="far fa-edit"></i> แก้ไข </button>
<button type="button" class="btn btn-sm btn-danger" data-toggle="modal" data-target="#DeleteS" data-whatever="'.$d.'"> <i class="fas fa-trash"></i> ลบ </button>';
})
);
$sql_details = array(
'user' => $user,
'pass' => $passwd,
'db' => $db,
'host' => $host
);
require( '../../datatable/ssp.class.php' );
$t = "term = '$term'";
$d = "date = '$date'";
$c = "class = '$class'";
$r = ($room == "") ? "" : "room = '$room'";
$str = $t . ', ' . $d . ', ' . $c . ', ' . $r;
$arr = explode(', ', $str);
$where = array_values(array_filter($arr, 'strlen'));
echo json_encode(
SSP::complex($_GET, $sql_details, $table, $primaryKey, $columns, $where)
);
?>
|
ประวัติการแก้ไข 2021-06-29 01:28:42 2021-06-29 01:28:48 2021-06-29 01:28:55 2021-06-29 01:29:00 2021-06-29 01:29:05 2021-06-29 01:29:10 2021-06-29 01:29:17
|
|
|
|
Date :
2021-06-29 00:39:45 |
By :
jgogo01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|