Форум → Программирование → JavaScript → [Ext JS] Загрузка узлов в Ext.tree.Panel с сервера
[Ext JS] Загрузка узлов в Ext.tree.Panel с сервера
Страницы: ← Следующая страница →
-
Приветствую… Наткнулся тут на вашем форуме на темку про Ext JS, почитал, люди вроде как знающие…может кто сможет помочь.
Проблемка вот в чем: у меня есть собственно дерево с рутом, нужно сделать запрос на сервер, получить узлы и отобразить в дереве…вроде все просто, только не выходит… Проглядел уже все что мог найти и API docs от разрабов, и всякие руководства и примеры, все равно никак не пойму где ошибаюсь :(
Эм, надеюсь ссылки на сторонние ресурсы тут разрешены?:) Код javascripta и php можно поглядеть вот в этой темке на форуме винграда:
http://forum.vingrad.ru/forum/topic-331553.html
Буду рад любой помощи, устал уже об стенку головой стучаться :) -
6 июня 2011 г. 10:26, спустя 1 час 13 минут 55 секунд
Эм, надеюсь ссылки на сторонние ресурсы тут разрешены?:)
а то блеядь! тут можно даже сискьи публиковать и хуй!Спустя 68 сек.по теме - ты чтото необычное пытаешься сделать или у тебя пример из доки не работает?Сапожник без сапог -
6 июня 2011 г. 11:18, спустя 52 минуты 51 секунду
В том то и дело, что я пытаюсь сделать самую обычную весч для данного фреймворка: загрузить данные в контейнер с сервака…
Все пишу как показано в примерах и статьях…там работает, у меня - нет…Правда примеры и статьи по большей части для 3 версии, а у меня 4…кое-какие отличия заметны, но не могли же они все полностью перелопатить…это, так сказать, базовый функционал…Спустя 133 сек.А…да…по ссылке в первом посте код моих файлов :) Если надо могу и сюда запостить…просто лень немного :) -
6 июня 2011 г. 11:28, спустя 9 минут 9 секунд
ты отлаживать то не умеешь? если ты используешь firefox, то поставь firebug (getfirebug.com) на вкладке console будут ошибки если они возникают в яваскрипте.
если ты не используешь огнелиса, то ты бот и должен поставить огнелисаСапожник без сапог -
6 июня 2011 г. 12:58, спустя 1 час 30 минут 4 секунды
Использую :) В том и суть…лис (точнее консоль FireBug) показывает что ответ от сервера получен, ответ сервера приходит в нужном формате. Элементы в store попадают…ни ошибок, ничего…совсем ничего не происходит. А должно строится дерево с загружеными узлами. -
-
7 июня 2011 г. 1:18, спустя 11 часов 42 минуты 27 секунд
По просьбам трудящихся….яваскрипт:
<html>
<head>
<title>Test Task Window</title>
<link rel="stylesheet" type="text/css" href="../ext-4.0.1/resources/css/ext-all.css">
<script type="text/javascript" src="../ext-4.0.1/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="../ext-4.0.1/ext-all-debug.js"></script>
</head>
<body>
<script type="text/javascript">
Ext.onReady(function() {
var store = Ext.create('Ext.data.TreeStore', {
proxy: {
type: 'ajax',
url: 'Nodes.php'
},
root: {
text: 'TaskTree',
id: 'RId',
expanded: true
},
storeId: 'MyStore',
folderSort: true,
sorters: [{
property: 'text',
direction: 'ASC'
}],
listeners: {
load: {
fn: function(stor, rec, res){
console.log(stor);
console.log(rec);
console.log(res);
}
}
}
});
var tree = new Ext.tree.TreePanel({
id: 'tree',
store: store,
useArrows: true,
editable: true,
animate: true,
autoScroll: true,
});
new Ext.window.Window({
title: 'Window for Tree',
height: 200,
width: 250,
items: [tree]
}).show();
});
</script>
</body>
</html>
<?php
class TreeNode {
public $text = "";
public $id = "";
public $iconCls = "";
public $leaf = true;
public $draggable = false;
public $href = "#";
public $hrefTarget = "";
function __construct($id,$text,$iconCls,$leaf,$draggable,
$href,$hrefTarget) {
$this->id = $id;
$this->text = $text;
$this->iconCls = $iconCls;
$this->leaf = $leaf;
$this->draggable = $draggable;
$this->href = $href;
$this->hrefTarget = $hrefTarget;
}
}
class TreeNodes {
protected $nodes = array();
function add($id,$text,$iconCls,$leaf,$draggable,
$href,$hrefTarget) {
$n = new TreeNode($id,$text,$iconCls,$leaf,
$draggable,$href,$hrefTarget);
$this->nodes[] = $n;
}
function toJson() {
return json_encode($this->nodes);
}
}
$requestedNode = "";
if (isset($_REQUEST["node"])) {
$requestedNode = $_REQUEST["node"];
}
$treeNodes = new TreeNodes();
//if ('rootId' == $requestedNode) {
$treeNodes->add("node-datasources","Datasources","",false,false,"","");
$treeNodes->add("node-reports","Reports","",false,false,"","");
/*} else if ('node-datasources' == $requestedNode) {
$treeNodes->add("employees-system-node","Employee Management System","datasource",true,false,"","");
$treeNodes->add("customers-system-node","Customer Management System","datasource",true,false,"","");
$treeNodes->add("order-system-node","Order Processing System","datasource",true,false,"","");
} else if ('node-reports' == $requestedNode) {
$treeNodes->add("time-report-node","Time and Attendance","report",true,false,"","");
$treeNodes->add("orders-by-quarter-report-node","Orders By Quarter","report",true,false,"","");
$treeNodes->add("customers-trends-report-node","Customer Trends","report",true,false,"","");
}
*/
echo $treeNodes->toJson();
?> -
7 июня 2011 г. 1:43, спустя 24 минуты 57 секунд
выложи куда нить на хостинг, ты думаешь ктото будет это копировать к себе создавать файлы и тп? есть более важные дела)Сапожник без сапог -
7 июня 2011 г. 2:07, спустя 24 минуты 46 секунд
просто возьми готовый пример с их сайта, там есть дерево с аяксовой подгрузкой -
7 июня 2011 г. 2:15, спустя 8 минут 2 секунды
http://dev.sencha.com/deploy/ext-4.0.1/examples/direct/direct-tree.html
вот этот пример должен подойти -
7 июня 2011 г. 3:20, спустя 1 час 4 минуты 55 секунд
Хм…я использовал в качестве примера вот этот: http://dev.sencha.com/deploy/ext-4.0.1/examples/tree/reorder.html
По поводу примера директ-три:
- эм…не совсем понял что делает эта строчка…и для чего…Ext.direct.Manager.addProvider(Ext.app.REMOTING_API);
- TestAction.getTree это, я так понял, пользовательская функция, которая, если верить докам, ззапускается при получении запроса и собственно разбирает его…а какие аргументы доступны для нее и в каком порядке? Документация у сенчи ужасная :(directFn: TestAction.getTree,
P.S. Выкладывание кода на хостинг откладывается на час :) Доберусь до дома - выложу… -
7 июня 2011 г. 3:41, спустя 20 минут 57 секунд
на счет второго, из вложенной картинки думаю всё ясно будет -
7 июня 2011 г. 4:36, спустя 54 минуты 39 секунд
Аха…понятно…это указывается объект и метод (т.е. функция) запускаемые на стороне сервера :)
"type":"rpc","tid":2 - а это что за поля? Обязательные или определенные пользователем?
И где их указывать? И для чего? …
а paramOrder - это как я понимаю индекс\набор индексов в массиве POST под которым на сервере можно вытащить то что отправлялось?
а остальное по логике должно быть доступно по индексам action и mehtod…я правильно понял? Просто проверить пока нет возможности, хотелось бы выяснить и дома сразу начать кодить :)Спустя 243 сек.Сначала написал, потом подумал…
"type":"rpc" и "tid":2…скорее всего аргументы для функции на сервере…а вот вопрос где они указываются остается открытым… -
7 июня 2011 г. 4:56, спустя 20 минут 8 секунд
Аха…понятно…это указывается объект и метод (т.е. функция) запускаемые на стороне сервера :)
Сам понял, чушь несу…Ext.direct.Manager.addProvider вот откуда ноги directFn растут…и, вероятно, все остальные данные в запросе тоже.
Осталось понять откуда взялись настройки Ext.app.REMOTING_API…в доках константу (выглядит как константа) REMOTING_API …не нашел…что это такое?:) -
7 июня 2011 г. 5:08, спустя 12 минут 15 секунд
http://www.sencha.com/products/extjs/extdirect
но это директ, а он тебе не нужен
Страницы: ← Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!