Как разработчик новичка, он взял меня на поиски высокого и низкого уровня, прежде чем решиться на пост для справки, я не совсем понимаю правильные синтаксические фразы для поиска, я думаю, поэтому я не нашел правильного решения.
В базовом объяснении: Im, использующий laravel и Carbon для отображения дат в течение следующих 60 дней, Carbon возвращает даты просто отлично, и laravel возвращает ответ в формате json примерно так:
0: "Tuesday 10th May 2016 "
1: "Wednesday 11th May 2016"
2: "Thursday 12th May 2016"
И так далее.... Так что в моем html у меня есть div, который содержит 5 результатов. Однако мне нужно иметь возможность использовать что-то вроде функции jQuery onclick для загрузки более массивных результатов из json-массива, возможно, с использованием сплайсинга.
У Laravel есть опция разбиения на страницы, но она не работает на массивах, и я попробовал практически все, что я могу найти в Интернете, чтобы попытаться разбить массив на 60 дней на куски 5, поэтому при использовании функции onLoad html будет закрыт с новыми 5 результатами.
вот моя текущая функция onLoad:
$.ajax({
crossOrigin: true,
url: '/dates',
success: function(data) {
$(".newdates").html('').append(data);
}
});
и ive также попробовал следующее. Единственная проблема здесь заключается в том, что загружаются те же 3 результата сплайсинга, что и мне нужен какой-то способ разбивки на страницы или аналогично тому, как работают данные в формате jquery DataTables.
$.ajax({
crossOrigin: true,
url: '/dates',
success: function(data) {
$.each(data.slice(0,3), function(i, item) {
console.log(item);
});
}
});
Я надеялся, что результат будет!
В представлении html:
Day 1
Day 2
Day 3
Day 4
Day 5
(Загрузить больше) <- Onclick скрыть текущие 5 и показать следующие 5 доступных дат.
First 5 days are now hidden from the view
Day 6
Day 7
Day 8
Day 9
Day 10
И такая же функция Load More будет доступна agai
Надеюсь, я смогу найти обходное решение, спасибо за ваше время, его очень ценю, я уверен, что доберусь туда, в конце концов.
Если вы хотите разбивать страницы только на стороне клиента, вы можете сохранить эти данные в переменной, чтобы вам не пришлось снова извлекать данные. Кроме того, вы можете создать функцию для разбивки на страницы и всегда вызывать ее при необходимости. Вы должны искать плагин, который уже имеет дело с разбиением на страницы (к сожалению, я не использовал только разбивку на страницы клиента, поэтому я не знаю никаких плагинов).
var myData = {};
var pageNumber = 1;
var ITENS_PER_PAGE = 3;
$.ajax({
crossOrigin: true,
url: '/dates',
success: function(data) {
myData = data;
console.log(paginate(myData, pageNumber, ITENS_PER_PAGE));
}
});
function paginate(data, pageNumber, itensPerPage) {
return data.slice((pageNumber - 1) * itensPerPage, itensPerPage);
}
function loadMore() {
pageNumber++;
console.log(paginate(myData, pageNumber, ITENS_PER_PAGE));
}