Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.08.2014, 12:01
Новичок на форуме
Отправить личное сообщение для ruvi Посмотреть профиль Найти все сообщения от ruvi
 
Регистрация: 31.05.2014
Сообщений: 9

Пагинация в grid
Здравствуйте!

Не правильно работает пагинация в гриде.

TableStore.js

Ext.define("STORE.store.TableStore", {
    extend: "Ext.data.Store",
    model: "STORE.model.TableModel",
    storeId: "TableStore",
    autoSync: true,
    autoLoad: true,
    pageSize: 4,
    sorters: [{
        property: 'id',
        direction: 'desc'
    }],
    proxy: {

        type: "ajax",
        api: {
            read: "data/read.php",
            create: 'data/create.php',
            update: 'data/update.php',
            destroy: "data/remove.php"
        },
        reader: {
            type: 'json',
            root: 'user',
            successProperty: 'success'
        },
        writer: {
            type: 'json',
            writeAllFields: true,
            encode: true,
            root: 'user'
        }
    }
})



Table.js

Ext.define("STORE.view.Table", {
    extend: "Ext.grid.Panel",
    alias: "widget.UserTable",
    title: "user table",
    store: "TableStore",
    height: 300,
    columns: [
        {
            text: "id",
            dataIndex: "id"
        },
        {
            text: "name",
            dataIndex: "name",
            flex: 1
        },
        {
            text: "surname",
            dataIndex: "surname",
            flex: 1
        },
        {
            text: "email",
            dataIndex: "email",
            flex: 1
        }
    ],
    dockedItems: [{
        xtype: 'pagingtoolbar',
        store:"TableStore",
        dock: 'bottom',
        displayInfo: true,
        beforePageText: 'Page',
        afterPageText: 'of {0}',
        displayMsg: 'Users {0} - {1} of {2}'
    }]
});



read.php

<?php
    require_once('dbconnect.php');
    $query = "SELECT * FROM store ";

    $result = mysqli_query($db, $query) or die ("НЕ УДАЛОСЬ ДОБЫТЬ ДАННЫЕ");

    $arr = array();

    while($row = mysqli_fetch_array($result)){
       $arr[] = $row;
    }

    echo json_encode(array(
        "success" => mysql_errno() == 0,
        "user" => $arr
    ));

    mysqli_close($db)
?>



пагинация работает нормально.
А таблица , такое чувство, будто вообще не знает о существовании пагинации(выводит не по 4 записи, а все сразу).

скрин таблицы
http://prntscr.com/4adz2s
-
-
-
-
Ответить с цитированием
  #2 (permalink)  
Старый 07.08.2014, 14:34
Профессор
Отправить личное сообщение для siber-biber Посмотреть профиль Найти все сообщения от siber-biber
 
Регистрация: 07.08.2013
Сообщений: 214

я не вижу никакой реализации паджинации в read.php. можно както так например (http://dev.mysql.com/doc/refman/5.0/en/select.html):
$query = 'select * from store limit '. (int)$page * (int)$page_size .', '. (int)$page_size;
получение значений $page, $page_size сами прикрутите.

кстати не вижу у вас никакой защиты от sql-инъекций ..я не про read.php а про пост о CRUD ..там где запись создавалась.
функциями mysql_/mysqli_* уже не рекомендуют пользоваться, есть более современные средства в PHP (PDO например).
Ответить с цитированием
  #3 (permalink)  
Старый 07.08.2014, 16:37
Новичок на форуме
Отправить личное сообщение для ruvi Посмотреть профиль Найти все сообщения от ruvi
 
Регистрация: 31.05.2014
Сообщений: 9

Огромное спасибо!
Всё заработало

теперь файл read.php выглядит так:

?php
    require_once('dbconnect.php');
    $page = $_GET['page'];
    $limit = $_GET['limit'];

    $query = 'SELECT * FROM store limit '. ((int)$page - 1) * (int)$limit .', '. (int)$limit ;

    $result = mysqli_query($db, $query) or die ("НЕ УДАЛОСЬ ДОБЫТЬ ДАННЫЕ");

    $arr = array();

    while($row = mysqli_fetch_array($result)){
       $arr[] = $row;
    };

    $total = mysqli_num_rows(mysqli_query($db, "SELECT * FROM store "));

    echo json_encode(array(
        "total" => $total,
        "success" => mysql_errno() == 0,
        "user" => $arr
    ));

    mysqli_close($db)
?>


Тут тоже, не учтены sql-иньекции.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[ExtJS 4] Rowexpander и Grid. Раскрыть заданный пункт. Rmxbot ExtJS 0 20.06.2012 11:47
Как сделать реконфигурацию фильтра динамического Grid? Сергей З ExtJS 0 11.01.2012 15:16
Grid RowExpander Black_Prince ExtJS 0 14.07.2011 13:41
Использование combobox поля в grid dionic ExtJS 0 26.05.2011 14:12
Выделит row в grid mycoding ExtJS 1 29.07.2010 15:28