Javascript-форум (https://javascript.ru/forum/)
-   ExtJS (https://javascript.ru/forum/extjs/)
-   -   проблемы с PagingToolbar (https://javascript.ru/forum/extjs/39316-problemy-s-pagingtoolbar.html)

serg3091 25.06.2013 13:17

проблемы с PagingToolbar
 
добрый день ,уже третий день пытаюсь побороть проблему с PagingToolbar,
сразу скажу, навыков в js очень мало...сильно не пинайте.
проблема вот в чем, гружу из базы данные загоняю их json
тут всё окок, создал модель.
Ext.define('WordListModel', {
        extend: 'Ext.data.Model',
        fields: [
					{name:'wordid', type: 'int'},
					{name:'wordval', type: 'string'},
					{name: 'last_update', mapping: 'last_update', type: 'date'}
				]
    });

создал store
var store = Ext.create('Ext.data.Store', {
        model: 'WordListModel',
		buffered: true,
		//autoLoad: true,
		totalProperty: "results",
		remoteSort: true,
		proxy: {
            type: 'ajax',
			timeout: 60000,
            url: 'controller/json.php',
			actionMethods: 'POST',
			reader: {
                root: 'wordsList'
            },
			simpleSortMode: true,
        }
    });


а вот дальше начинается проблемы, как правильно грузить store если не autoload, и может есть проблемы в backend(php) ,если грузить вот так
store.load({
    params:{
        start:0,
		limit:1000,
		lolol:10
    }
 });

всё грузится окок, но при нажатии кнопки следующей страницы, получаю
была аналогичная тема на форуме, но так и не могу разобратся....

skrudjmakdak 25.06.2013 13:36

так в чем проблема соббсенно??))
сам sql надо формировать динамически, вот я делал так:
<?php
$start = mysql_real_escape_string($_POST["start"]);
$limit = mysql_real_escape_string($_POST["limit"]);
$sort = mysql_real_escape_string($_POST["sort"]);
$dir = mysql_real_escape_string($_POST["dir"]);

$orders = ($sort == "") ? "" : " order by ".$sort." ".$dir." ";
$limits = ($start == "" && $limit == "") ? "" : " limit ".$start.", ".$limit." ";

$sql = "
	select SQL_CALC_FOUND_ROWS 
	   id 
     , address 
	FROM 
		city 
	".$orders."
	".$limits.";";
	
$query = mysql_query($sql);

$ar = array();
if ($query)
	{
	while($obj = mysql_fetch_object($query))
		{
		array_push($ar, array
			(
			"id"  => $obj->id,
			"address"   => $obj->address
			));
		}
	}

$query = mysql_query("SELECT FOUND_ROWS() as count");
$object = mysql_fetch_object($query);
echo json_encode(array
	(
	"data" => $ar,
	"totalCount" => $object->count
	));
?>

serg3091 25.06.2013 21:44

Цитата:

Сообщение от skrudjmakdak (Сообщение 258349)
так в чем проблема соббсенно??))
сам sql надо формировать динамически, вот я делал так:

проблема в том , почему при клике следующий страницы, отправляются дефолтные значения , и как это исправить?
и можно подробнее рассказать про логику с pagingom

skrudjmakdak 25.06.2013 22:37

как это дефолтные?
была page 1, стала page 2... т.е. страница перелестнулась

если вы хотите свой параметр передать с последующем сохранением, то используйте extraParams. Даже я как то задавал вопрос по этому поводу.. правда давненько..

есть 2 вида передаваймых параметров. первый - это разово передаваемый, после чего он не сохраняется в сторах. и второй - когда сохраняются данные

вот пример:
точно не помню, на память пишу..
здесь отправляться данные будут каждый раз
store.getProxy().extraParams['my_parameter'] = 123;

или так, разовая отправка параметра:
store.getProxy().params['my_parameter'] = 123;

skrudjmakdak 26.06.2013 09:33

ну там же есть примеры..
http://docs.sencha.com/extjs/4.2.1/#!/example

там есть гриды.. вот например:
http://docs.sencha.com/extjs/4.2.1/e...ress-bar-pager

там можно скачать в архиве. прям там есть в папке examples примеры. и серверная часть тоже есть (на php)


Часовой пояс GMT +3, время: 09:22.