Вы сказали:
хочу переделать добавить загрузку по кнопки еще из того что сразу загружает все
if(isset($_POST['orgs_table']) && $_POST['orgs_table']=='list_orgs'){
$res = $SQLite3->query(" SELECT
organization.id,
organization.name_org,
organization.firs_last_name,
organization.email_org,
organization.phone_org,
organization.date_org,
CASE
WHEN (
SELECT COUNT(*)
FROM message
WHERE message.from_send = organization.email_org
) = 0 THEN 1
ELSE 0
END AS no_reg
FROM organization");
$data = [];
while($row = $res->fetchArray(SQLITE3_ASSOC)){
$data[] = $row;
}
//$data['hasMore'] = count($data) >= $limit;
//echo json_encode(['data'=>$data]);//dataSrc: 'data' обязательно
echo json_encode($data);//dataSrc: 'data' не обязательно можно или dataSrc: ''
//echo '<pre>',print_r($GLOBALS,1);
exit;
}
<table id="orgsTable" class="display table dataTable no-footer" id="table1" aria-describedby="table1_info">
<thead>
<tr>
<th>ID</th>
<th>Название</th>
<th>Контакт</th>
<th>Email</th>
<th>Телефон</th>
<th>Дата</th>
<th>Детали</th>
</tr>
</thead>
</table>
<script>
function fmt(date) {
return date.format("YYYY-MM-DD HH:mm");
}
const savedLength = localStorage.getItem("table1_length") || 10;
let offset = 0;
const limit = parseInt(savedLength);//50;
let loading = false;
let allLoaded = false;
let table;
$(document).ready(function(){
let currentGroup = 'list_orgs';
// Инициализация DataTable
table = $('#orgsTable').DataTable({//var table =
'responsive': true,
//"paging" : false,
//"searching" : false,
//"ordering" : true,
scrollCollapse: true,
"pageLength": 25,
scrollY: '880px',
"language": {"url": "/ru/datatable/Russian.json" },
processing: true,
// ajax: '?page=dev-test&action=list_orgs',
ajax: {
method: 'POST',//type: 'POST',
//url: '?page=dev-test&action=list_orgs',
url: window.location.href,
// contentType: 'application/json',
// dataType: 'json',
data: function(d) {
/*return $.extend({}, d, {
//group: currentGroup
deal: currentGroup
});*/
d.orgs_table = currentGroup;//action
//d.applications = {"data" : ["box","www"]};
},
/*success: function(data){
console.log(data)
},*/
error: function (e) {
console.log("There was an error with your request...");
console.log("error: " + JSON.stringify(e));
},
dataSrc: '' //echo json_encode($data);
//dataSrc: 'data' ////echo json_encode(['data'=>$data]);
},
columns: [
{data:'id'},
{data:'name_org'},
{data:'firs_last_name'},
{data:'email_org'},
{data:'phone_org'},
{data:'date_org'},
{
data:null,
render:function(row){
if(row.no_reg)//0 || 1
row.no_reg = 'btn-warning';
else
row.no_reg = 'btn-primary';
return '<button class="btn '+row.no_reg+' open-org" data-id="'+row.id+'" data-email="'+row.email_org+'">Открыть</button>';
}
}
]
});
function loadMoreData() {
if (loading || allLoaded) return;
loading = true;
//table1.processing(true);
$('#orgsTable_processing').show();
$('#loadMoreBtn').prop('disabled', true).text('Загрузка...');
$.ajax({
url: window.location.href,//'ajax/inbox_data.php',
method: 'POST',
dataType: 'json',
data: {
limit: limit,
offset: offset,
//start: getUrlParameter('start') || '',
//end: getUrlParameter('end') || '',
//stkp: getUrlParameter('stkp') || 'all'
},
success: function(response) {
if (response.data.length > 0) {
//const table = $('#table1').DataTable();
table.rows.add(response.data).draw(false);
offset += limit;
} else {
allLoaded = true;
}
loading = false;
if (!response.hasMore || response.data.length < limit) {
$('#loadMoreBtn').hide();
} else {
$('#loadMoreBtn').prop('disabled', false).text('Загрузить ещё');
}
// после загрузки — прокрутка к таблице
/*const table1_wrapper = document.querySelector('#table1_wrapper');
if (table1_wrapper) {
table1_wrapper.scrollIntoView({ behavior: 'smooth', block: 'start' });
}*/
const scrollBody = document.querySelector('.dataTables_scrollBody');
if (scrollBody) {
scrollBody.scrollTo({ top: 0, behavior: 'smooth' });
}
//$('#table1_processing').hide();
},
error: function() {
alert("Ошибка при загрузке данных");
$('#orgsTable_processing').hide();
},
complete: function() {
loading = false;
$('#orgsTable_processing').hide();
}
});
}
// Первая загрузка
loadMoreData();
// Кнопка загрузки
$('#loadMoreBtn').on('click', function () {
loadMoreData();
});