Я создаю форум и хочу, чтобы он работал как настольное приложение, поэтому я не обновляю страницу. Из-за отсутствия лучшего метода без еще одного полного Ajax-запроса я получаю количество страниц данных, доступных в Ajax-запросе. Мне нужно отобразить эти данные (как у меня на ethoma.com/testhome.php - я установил размер страницы 1 для тестирования), но мне также нужно добавить обработчики событий для каждого отображаемого номера, чтобы вызвать событие, которое изменится цвет текста и запуск Ajax-вызова для получения указанного номера страницы. Проблема для меня в том, что там может быть 500 страниц (конечно, тогда я не смог бы отобразить каждый номер страницы). Для тех, кто не хочет просматривать код на моем сайте, вот его важные части:
function getPosts()
{
var queryString = "category=" + category + "&page=" + page + "&order=" + order;
$.ajax(
{
url: 'getposts.php',
data: queryString,
success: function(data)
{
var oldHtmlTemp;
var dataArray = data.split("%^&$;");
numpage = dataArray[0];
$('#postcontainer').html(dataArray[1]);
$('#enterpage').html('');
if (numpage != 0)
{
for(var i=1;i<=numpage;i++)
{
oldHtmlTemp = $('#enterpage').html();
$('#enterpage').html(oldHtmlTemp + " " + i);
}
oldHtmlTemp = $('#enterpage').html();
$('#enterpage').html(oldHtmlTemp + " ");
}
else
{
$('#enterpage').html('No results for this query');
}
}
});
}
Если вам интересно, что делает .split (), php doc возвращает количество страниц, разделенных этой странной строкой, которую я обозначил. Я решил, что это будет самый простой способ поместить количество страниц в остальную часть текста сообщения.
В любом случае, как мне добавить обработчики событий к этим отдельным номерам?
У меня быстрый вопрос, по какой-то странной причине этот код не работает. Он добавляет обработчик событий на следующую страницу и кнопки предыдущей страницы, а также проверяет ошибки, чтобы убедиться, что вы не пытаетесь нажать на страницу -1.
$("#nextpage").click(function()
{
if (page < numpage -1)
{
page++;
getPosts();
alert(page);
}
});
$("#prevpage").click(function()
{
if (page >= 1);
{
page--;
getPosts();
alert(page);
}
});
Оповещения для отладки. Также стоит отметить, что когда страница = 0, вы получаете страницу 1. Я имею в виду, что я считаю от 0 1 2, но пользователь видит 1 2 3.
Спасибо всем, кто просматривает / отвечает на этот пост.