var Data = [
['com1', 71.72, 0.02, 0.03, '123'],
['com2', 29.01, 0.42, 1.47, '123'],
['com3', 83.81, 0.28, 0.34, '123']
];
сам грид
var grid = Ext.create('Ext.grid.Panel', {
store: store,
stateful: true,
collapsible: true,
multiSelect: true,
stateId: 'stateGrid',
самый простой...кто-то уже делал подобное?
отдаю в json_encode() хочу преобразовать в грид...дайте хоть ссылку на ману, а то в доки ничего нет
Спустя 3 минуты, 41 секунда (23.06.2012 - 21:49) sharki написал(а):
У тебя какая ColumnModel?
К тому же, ты должен отдавать тот вид, который требует ExtJs.
К тому же, ты должен отдавать тот вид, который требует ExtJs.
Спустя 20 секунд (23.06.2012 - 21:50) vital написал(а):
Цитата |
store: store, |
Вот там в переменной store - объект, к-й передает\получает данные.
Там можно задать урл..
Цитата |
а то в доки ничего нет |
все там есть, не гнать.
Спустя 1 минута, 59 секунд (23.06.2012 - 21:52) sharki написал(а):
Спустя 3 минуты, 30 секунд (23.06.2012 - 21:55) johniek_comp написал(а):
vital
ага, натолкнул на мысль, пошел поправил и все заработало, спасибо!
ага, натолкнул на мысль, пошел поправил и все заработало, спасибо!
Спустя 17 минут, 41 секунда (23.06.2012 - 22:13) johniek_comp написал(а):
еще вопрос:
грид должен принимать данные только со специального хранилища созданного для него?
вот
или можно вручную запихнуть json? потому что не совсем понятно что возвращает Ext.create
вручную я имел в виду так
просто так я параметры могу передать, а то тупо ответ получить не подходит под наши задачи.
и что означает model в методе create?
грид должен принимать данные только со специального хранилища созданного для него?
вот
var store = Ext.create('Ext.data.Store', {
model: '',
proxy: {
type: 'ajax',
url: 'ajax.php',
reader: {
type: 'json'
}
}
});
или можно вручную запихнуть json? потому что не совсем понятно что возвращает Ext.create
вручную я имел в виду так
Ext.Ajax.request({
url: 'ajax.php',
method: 'post',
params: {
sid: 1,
},
success: function(response){
var text = response.responseText;
Ext.Msg.alert('message', text);
}
});
просто так я параметры могу передать, а то тупо ответ получить не подходит под наши задачи.
и что означает model в методе create?
Спустя 3 минуты, 24 секунды (23.06.2012 - 22:16) vital написал(а):
Цитата |
не совсем понятно что возвращает Ext.create |
объект тоготипа, к-й ее попросили.
Цитата |
можно вручную запихнуть json? |
можно, а зачем?
Цитата |
только со специального хранилища созданного для него? |
ничего не мешает использовать это же хранилище и в другом месте.
Спустя 14 минут, 59 секунд (23.06.2012 - 22:31) johniek_comp написал(а):
вот попробовал без хранилища
консоль Uncaught ReferenceError: text is not defined (anonymous function)
Ext.Loader.setConfig({enabled: true});
Ext.Loader.setPath('Ext', '/extjs');
Ext.require([
'Ext.grid.*',
'Ext.data.*',
'Ext.util.*',
'Ext.state.*',
'Ext.Ajax.*'
]);
var st = Ext.Ajax.request({
url: 'ajax.php',
method: 'post',
params: {
sid: 1,
},
success: function(response){
var text = response.responseText;
// Ext.Msg.alert('message', text);
}
});
// запрос происходит нормально, в text записал ответ сервера в json
var grid = Ext.create('Ext.grid.Panel', {
store: text, // то что пришло, типа отсюда брать
columns: [
{text: "первая", flex: 1, dataIndex: 'one', sortable: true},
{text: "вторая", width: 115, dataIndex: 'two', sortable: true}
],
height:210,
renderTo: 'grid'
});
консоль Uncaught ReferenceError: text is not defined (anonymous function)
Спустя 3 минуты, 56 секунд (23.06.2012 - 22:35) sharki написал(а):
johniek_comp
Суть в том, что Ajax то отправил запрос, а grid то не будет ждать, вот и не видит он переменную text. И еще, ты объявил переменную внутри анонимной функции, её извне не видно. Так же есть метод loadData().
Суть в том, что Ajax то отправил запрос, а grid то не будет ждать, вот и не видит он переменную text. И еще, ты объявил переменную внутри анонимной функции, её извне не видно. Так же есть метод loadData().
Спустя 7 минут, 40 секунд (23.06.2012 - 22:43) johniek_comp написал(а):
sharki
задержал, но чую не туда копаю, не работает:
Uncaught TypeError: Cannot read property 'buffered' of undefined
а про loadData() не понял, растолкуй...
задержал, но чую не туда копаю, не работает:
Свернутый текст
var st = Ext.Ajax.request({
url: 'ajax.php',
method: 'post',
params: {
sid: 1,
},
success: function(response){
var data = response.responseText;
setTimeout(testjs(data), 1000)
// Ext.Msg.alert('message', text);
}
});
function testjs(data) {
var grid = Ext.create('Ext.grid.Panel', {
store: data,
columns: [
{text: "первая", flex: 1, dataIndex: 'one', sortable: true},
{text: "вторая", width: 115, dataIndex: 'two', sortable: true}
],
height:210,
renderTo: 'grid-example'
});
}
Uncaught TypeError: Cannot read property 'buffered' of undefined
а про loadData() не понял, растолкуй...
Спустя 5 минут, 58 секунд (23.06.2012 - 22:49) sharki написал(а):
Не понимаю зачем ты придумываешь какие то изощерения, есть уже готовые классы для этого. Например.
А с LoadData я переборщил,не для твоего случая он
Ext.define('Article', {
extend: 'Ext.data.Model',
fields: [
{name: 'one', type: 'int'},
{name: 'two', type: 'string'}
]
});
var store = Ext.create('Ext.data.Store', {
model: 'Article',
proxy: {
type: 'ajax',
url: "URL HERE",
extraParams : {
val1: "val1"
},
actionMethods: 'POST'
},
autoLoad: true
});
var grid = Ext.create('Ext.grid.Panel', {
store: store ,
columns: [
{text: "первая", flex: 1, dataIndex: 'one', sortable: true},
{text: "вторая", width: 115, dataIndex: 'two', sortable: true}
],
height:210,
renderTo: 'grid-example'
});
А с LoadData я переборщил,не для твоего случая он
Спустя 12 минут, 56 секунд (23.06.2012 - 23:02) johniek_comp написал(а):
sharki
Uncaught TypeError: Cannot read property 'dom' of null
Uncaught TypeError: Cannot read property 'dom' of null
Спустя 10 часов, 16 минут, 40 секунд (24.06.2012 - 09:19) johniek_comp написал(а):
подправьте кто-нибудь:
ajax.php возвращает json
{"one":["0","1"],"two":["2","3"]}
консоль говорит Uncaught TypeError: Cannot read property 'dom' of null
Свернутый текст
Ext.Loader.setConfig({enabled: true});
Ext.Loader.setPath('Ext', '/extjs');
Ext.require([
'Ext.*',
]);
Ext.define('Article', {
extend: 'Ext.data.Model',
fields: [
{name: 'one', type: 'string'},
{name: 'two', type: 'string'}
]
});
var store = Ext.create('Ext.data.Store', {
model: 'Article',
proxy: {
type: 'ajax',
url: "ajax.php",
extraParams : {
sid: 1,
johniek : true
},
actionMethods: 'POST'
},
autoLoad: true
});
var grid = Ext.create('Ext.grid.Panel', {
store: store ,
columns: [
{text: "первая", flex: 1, dataIndex: 'one', sortable: true},
{text: "вторая", width: 115, dataIndex: 'two', sortable: true}
],
height:210,
renderTo: 'grid'
});
ajax.php возвращает json
{"one":["0","1"],"two":["2","3"]}
консоль говорит Uncaught TypeError: Cannot read property 'dom' of null
Спустя 39 минут, 38 секунд (24.06.2012 - 09:58) sharki написал(а):
Аяксдолжен возвращать такой вид
[ ['com1', 71.72, 0.02, 0.03, '123'],
['com2', 29.01, 0.42, 1.47, '123'],
['com3', 83.81, 0.28, 0.34, '123']]
Спустя 22 минуты, 30 секунд (24.06.2012 - 10:21) sharki написал(а):
Смотри, ьы описываешь вид, который должен прийти в ответ на аякс.
т.е должен прийти массив с 2мя элементами массива one и two
Если так, то вставится 3 строчки в таблице.
Если хочешь больше, то надо добавить нужное поле в fields
И на ответе ты должен указать значение 3его поля
fields: [
{name: 'one', type: 'int'},
{name: 'two', type: 'string'}
]
т.е должен прийти массив с 2мя элементами массива one и two
[ [123,'com1'],
[1234,'com2'],
[1235,'com3']]
Если так, то вставится 3 строчки в таблице.
Если хочешь больше, то надо добавить нужное поле в fields
fields: [
{name: 'one', type: 'int'},
{name: 'two', type: 'string'},
{name: 'three', type: 'string'}
]
И на ответе ты должен указать значение 3его поля
[ [123,'com1','adfom1'],
[1234,'com2','adfom1'],
[1235,'com3','adfom1']]
Спустя 1 час, 1 минута, 30 секунд (24.06.2012 - 11:22) johniek_comp написал(а):
sharki
Цитата |
Аяксдолжен возвращать такой вид |
вот с этого я и начинал тему, вообщем никак не поддается мне он!!!
вот ajax.php
<?php
if(isset($_POST['sid']))
{
$json = array("one" => array("0","1"), "two" => array("2","3"));
echo json_encode($json);
}
?>
получаю {"one":["0","1"],"two":["2","3"]} обычный json все как надо
может я не так понимаю?
вот закомментил посмотри :lol:
Свернутый текст
Ext.Loader.setConfig({enabled: true});
Ext.Loader.setPath('Ext', '/extjs'); // папка с extjs
Ext.require([
'Ext.*', // подключаем вообще все!!!
]);
Ext.define('Article', {
extend: 'Ext.data.Model', // хер знает что это
fields: [
{name: 'int', type: 'int'},
{name: 'one', type: 'string'}, // типы полей
{name: 'two', type: 'string'}
]
});
var store = Ext.create('Ext.data.Store', { // ajax-запрос
model: 'Article',
proxy: {
type: 'ajax',
url: "ajax.php",
extraParams : {
sid: 1,
johniek : true // параметры
},
actionMethods: 'POST' // метод
},
autoLoad: true // хер знает что это
});
var grid = Ext.create('Ext.grid.Panel', { // стоим грид
store: store , // это то что пришло от скрипта
columns: [
{text: "integer", flex: 1, dataIndex: '', sortable: true},
{text: "первая", flex: 1, dataIndex: 'one', sortable: true},
{text: "вторая", width: 115, dataIndex: 'two', sortable: true}
// название поля в гриде, индекс ас. массива, с сортировкой
],
height:210, // размер
renderTo: 'grid' // засунуть в div id="grid"
});
результат = 0;
Спустя 3 минуты, 58 секунд (24.06.2012 - 11:26) sharki написал(а):
if(isset($_POST['sid']))
{
$json = array(array("0","one","1"),array("2","two","3"));
echo json_encode($json);
}
Вот такой вид должен быть
Спустя 24 минуты, 56 секунд (24.06.2012 - 11:51) johniek_comp написал(а):
пи****, доков нет, есть одна книга и то для goldfusion...
а для мобильных интерфейсов extjs хорошо будет?
а для мобильных интерфейсов extjs хорошо будет?
Спустя 23 минуты, 17 секунд (24.06.2012 - 12:14) sharki написал(а):
johniek_comp
все есть, просто ты не умеешь их курить
все есть, просто ты не умеешь их курить
Спустя 35 минут, 16 секунд (24.06.2012 - 12:50) johniek_comp написал(а):
sharki
Цитата |
просто ты не умеешь их курить |
согласен

_____________
