Загрузить больше возможностей с помощью JSON - PullRequest
0 голосов
/ 19 января 2012

Я пытаюсь реализовать дополнительную функцию в создаваемом веб-приложении. Когда приложение загружается, оно выполняет ajax-вызов контроллера, который получает данные из базы данных и затем кодирует их в JSON. Я использую ограничения и смещения в запросе MySQL, и я больше данных, которые будут загружены, когда пользователь прокручивает вниз. Это метод в контроллере, для которого выполняется вызов ajax

function latest_pheeds($offset = 0) {
            //Confirm if a user is logged before allowing access
            if($this->isLogged()) 
            {
                //Limit
                $limit = 20;
                //user id
                $user_id = $this->session->userdata('user_id'); 
                //load pheeds
                $dt = $this->pheed_model->get_latest_pheeds($limit,$offset);    
                $data = $dt['pheeds']; //data
                $total = $dt['total']; //Total no of rows of data
                $return['pheeds'] = $data;
                echo json_encode($return); //encode in json

            } else {
                $this->output->set_status_header('401',"Attempting Unauthorized Access");
            }
        }

Как мне разбить эти данные на страницы, чтобы я мог просто передать страницу no в качестве аргумента методу через вызов ajax, чтобы реализовать дополнительную нагрузку с помощью jQuery?

1 Ответ

2 голосов
/ 19 января 2012

Рассчитайте $offset, умножив (page number - 1) на $limit:

$offset = ($page - 1) * $limit;

Так что, если $ page равен 1, тогда это будет (1 - 1) * 20 = 0 * 20 = 0,

, если $ page2, то это будет (2 - 1) * 20 = 1 * 20 = 20

Также переименуйте параметр функции $offset в $page

[EDIT]

Также я бы сделал запросна одну строку больше, чем нужно, поэтому я могу определить, есть ли следующая страница, например:

$dt = $this->pheed_model->get_latest_pheeds($limit + 1,$offset);
$next_page = false;
if (count($dt) > $limit) {
    $next_page = true;
    $dt = array_pop($dt); // Excluding the last row so it is same size as $limit
}
// More code....
$return['next_page_exists'] = $next_page;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...