powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / ExtJS tree.Panel text:
20 сообщений из 20, страница 1 из 1
ExtJS tree.Panel text:
    #37887504
Фотография Маф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброе время суток всем. Не один день пытался решить эту маленькую проблему, которая оказалась для меня такой огромной.

Написано приложение, шаблон MVC, php, фрэймворк ExtJS, mysql

Вот его вид и с него я буду объяснять что я хочу. Скрин: вид приложения, и консоль Firebug

Слева на Toolbar есть кнопки, а под ними Tree.Panel.. У которой есть 3 колонки:

первая - xtype:'treecolumn'
вторая - id
третья - ФИО (user_fio)

ФАЙЛ VIEW (представление)
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
Ext.define('AM.view.main.tree', {
    extend: 'Ext.tree.Panel', 
    title: 'Simple Tree',
	alias: 'widget.tree_grid', 
     width: 190,
     height: 200,
    store: 'Tr',
	//id : 'tr'
     rootVisible: true,
	// renderTo: Ext.getBody('Panel.Toolbar.TreeGrid')
	//defaultRootProperty: 'data',
	//displayField: 'user_fio',
	columns:[   {
				xtype:'treecolumn',
				text: 'Пользователи',
				dataIndex: 'text',
				width: 80
				},
				{            
                   text: 'ID',
                   dataIndex: 'id',
                   width: 30,
				   
                } ,   
				{  	
					//xtype:  'label',        
                    text: 'Ф.И.О.',
                   [color=red] dataIndex: "user_fio",[/color]
					width: 93,
                    //flex: 1
				
                }



красным цветом я выделил, то на что стоит обратить внимание.

Читаем далее,
ФАЙЛ STORE

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
Ext.define('AM.store.Tr', {
    extend: 'Ext.data.TreeStore', 
	model: 'AM.model.Tree',
	defaultRootProperty: 'data',
  	proxy: {
         type: 'ajax',
         url: 'data.php?line2=1',
         reader: {
             type: 'json',
             root: 'data'
         }
     },
     autoLoad: true,
     displayField: 'user_fio',	 
     root: {
		id: '',
        expanded: true,
		text: "User Types",
       [color=red] data: 
		[
            {   
			text: "user", id:4, , leaf: false, 
			
	    },
            {
			text: "admin", id:5, leaf: false, 
	    }[/color]
        ]
    }	 
     	 
}); 



И ФАЙЛ MODEL
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Ext.define('AM.model.Tree', {
    extend: 'Ext.data.Model',
   
	fields: [   
				{name:'id', type:'int'}, 
				[color=red]{name: 'user_fio',type:'string'},[/color]
				
					
					 ],
				
    idProperty: 'id'
    
});




Вопрос такой, почему у меня не отображается данные из поля user_fio и колонке tree.Panel "Ф.И.О." ?
Колонка ID отображается корректно, хотя берется из того же массива данных, который виден в консоле Firebug на картинке.
...
Рейтинг: 0 / 0
ExtJS tree.Panel text:
    #37887719
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это видели/сравнивали/анализировали?
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ExtJS tree.Panel text:
    #37888878
Фотография Маф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ex_Soft,

увидел/сравнил/проанализировал , не помогло :(

В моем коде все так же как и тут, никаких особых ошибок я не вижу, но проблема остаётся не решенной, может я что-то не вижу, того что Вы видите, наведите на путь истинный, пожалуйста. Спасибо
...
Рейтинг: 0 / 0
ExtJS tree.Panel text:
    #37888895
Фотография Паганель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуйте как-то локализировать проблему
поэкспериментировать с порядком полей, с типами данных

если никак - попробуйте сделать маленький тестовый пример (на jsfiddle.net например)

ЗЫ я ExtJS не знаю

ЗЗЫ я всегда подсознательно опасался запятую перед квадратной скобкой:)
...
Рейтинг: 0 / 0
ExtJS tree.Panel text:
    #37888933
Фотография Маф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Паганель,

Я уже все перепробовал и имя поля копировал из базы и вставлял везде в коде, и другие поля пытался достать, но все так же, их не видно, видно только первое поле id из той же таблицы. В ExtJS запятые перед скобками это нормально, если не нормально браузер просто не покажет ничего :)
...
Рейтинг: 0 / 0
ExtJS tree.Panel text:
    #37888944
Фотография Маф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Паганель,

Это модуль и так маленький :) просто, т.к. использую MVC он состоит из трех файликов, где кода "как кот наплакал" :) единственное, что можно еще вам показать это сам файл data.php к которому ссылается

Store:

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
Ext.define('AM.store.Tr', {
    extend: 'Ext.data.TreeStore', 
	model: 'AM.model.Tree',
	defaultRootProperty: 'data',
  	proxy: {
         type: 'ajax',
         url: 'data.php?line2=1',
         reader: {
             type: 'json',
             root: 'data'
         }
     },
     autoLoad: true,
  	 
     root: {
		id: '',
        expanded: true,
		text: "User Types",
        data: 
		[
            {   
			text: "user", id:4,  leaf: false, 
			
			},
            {
			text: "admin", id:5, leaf: false,
			}
        ]
    }	 
     	 
}); 



А именно 'data.php?line2=1'

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
if (@$_REQUEST['line2']){
    $start = (int)@$_REQUEST['start'];
    $limit = (int)@$_REQUEST['limit']?(int)$_REQUEST['limit']:10;
    
    $sort =  @$_REQUEST['sort'];
    $sort_dir =  @$_REQUEST['dir'];
    
    $query = @$_REQUEST['query'];
	$id = @$_REQUEST['id'];
   
    $filters = array(); // объявлем пустой массив, чтоб его заполнить
    if (@$_REQUEST['node']) //если послано id node..
      {
      	  $filters['user_type_id'] = $_REQUEST['node']; // .. то присвоем user_type_id значение id node 
		 
      }
    
    $res= $sample2->getAll($limit, $start, $filters, $sort, $sort_dir);  
    
    if (@$_REQUEST['node'])
    foreach ($res['items'] as $n => $item ){
      $item = array_merge($item,array('leaf'=>true)); 	// array_merge сливает массивы и получается новый. Елементы второго массива добавляются к элементам первого.
      $res['items'][$n] = $item;                        // в данном случае массив item состоит из елементов : $limit, $start, $filters, $sort, $sort_dir и 'leaf'=>true
    }
      
    exit(json_encode(array('success'=>true,'data'=>$res['items'],'total'=>$res['total'])));
	
	
	
	}
...
Рейтинг: 0 / 0
ExtJS tree.Panel text:
    #37888959
Фотография Маф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто готов помочь, я могу скинуть исходники всего приложения и .sql базы, если тут непонятно что к чему
...
Рейтинг: 0 / 0
ExtJS tree.Panel text:
    #37889100
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возьмите вот эту дрозофилу и разберитесь.
...
Рейтинг: 0 / 0
ExtJS tree.Panel text:
    #37889108
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МафА именно 'data.php?line2=1'

Вы можете JSON показать который на клиента приходит?
...
Рейтинг: 0 / 0
ExtJS tree.Panel text:
    #37889319
Фотография Маф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ex_SoftВозьмите вот эту дрозофилу и разберитесь.

Я же уже говорил, что этот код у меня работает + Мой я сравнивал с этим, все такого же типа, но ошибок у себя я не нашел.
...
Рейтинг: 0 / 0
ExtJS tree.Panel text:
    #37889328
Фотография Маф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ex_SoftМафА именно 'data.php?line2=1'

Вы можете JSON показать который на клиента приходит?

скрин с FireBug есть в начале. Там написано какие данные JSON
...
Рейтинг: 0 / 0
ExtJS tree.Panel text:
    #37889458
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МафЯ же уже говорил, что этот код у меня работает + Мой я сравнивал с этим, все такого же типа, но ошибок у себя я не нашел.
Ну, если Вам лень сделать свою дрозофилу , ждите, пока у кого-то найдется время сделать ее за Вас и разобраться, почему этот код, адаптированный под Ваши нужды/данные, не работает...
...
Рейтинг: 0 / 0
ExtJS tree.Panel text:
    #37889558
Фотография Маф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ex_SoftМафЯ же уже говорил, что этот код у меня работает + Мой я сравнивал с этим, все такого же типа, но ошибок у себя я не нашел.
Ну, если Вам лень сделать свою дрозофилу , ждите, пока у кого-то найдется время сделать ее за Вас и разобраться, почему этот код, адаптированный под Ваши нужды/данные, не работает...

Вообще-то я сделал себе пример с этого кода на который Вы дали ссылку :) но переделав свой под новый, не добился ничего интересного
...
Рейтинг: 0 / 0
ExtJS tree.Panel text:
    #37889577
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МафВообще-то я сделал себе пример с этого кода на который Вы дали ссылку :) но переделав свой под новый, не добился ничего интересногоНу и эта Ваша дрозофила хоть заработала?..
...
Рейтинг: 0 / 0
ExtJS tree.Panel text:
    #37889585
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JSON посморите - у Вас такой же (по структуре)?
...
Рейтинг: 0 / 0
ExtJS tree.Panel text:
    #37889595
Фотография Маф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ex_SoftМафВообще-то я сделал себе пример с этого кода на который Вы дали ссылку :) но переделав свой под новый, не добился ничего интересногоНу и эта Ваша дрозофила хоть заработала?..

да, и JSON такой же
...
Рейтинг: 0 / 0
ExtJS tree.Panel text:
    #37889612
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мафда
Ну тогда перенесите ее в свое приложение

Мафи JSON такой же
/me думает: что-то я здесь никакого намека на дерево , акромя leaf - не замечаю...
...
Рейтинг: 0 / 0
ExtJS tree.Panel text:
    #37889790
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все завелось с пол-пинка:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
Ext.onReady(function() {
	Ext.QuickTips.init();

	Ext.define("TestTreeStoreModel", {
		extend: "Ext.data.Model",
		idProperty: "id",
		fields: [
			{ name: "id", type: "int" },
			{ name: "parentId", type: "int"  },
			"caption",
			"smthtext"
		]
	});

	var
		data = 	[{
			id: 1,
			parentId: 0,
			caption: "Folder# 1",
			smthtext: "SmthText# 1",
			children: [
				{ id: 2, parentId: 1, caption: "Leaf# 1.1", smthtext: "SmthText# 1.1", leaf: true },
				{ id: 3, parentId: 1, caption: "Leaf# 1.2", smthtext: "SmthText# 1.2", leaf: true }
			]
		}, {
			id: 4,
			parentId: 0,
			caption: "Folder# 2",
			smthtext: "SmthText# 2",
			children: [
				{ id: 5, parentId: 4, caption: "Leaf# 2.1", smthtext: "SmthText# 2.1", leaf: true },
				{ id: 6, parentId: 4, caption: "Leaf# 2.2", smthtext: "SmthText# 2.2", leaf: true }
			]
		}],
		store = Ext.create("Ext.data.TreeStore", {
			model: "TestTreeStoreModel",
			folderSort: true,
			proxy: {
				type: "memory"
			}
		}),
		t = Ext.create("Ext.tree.Panel", {
			title: "TreeGrid",
			height: 500,
			width: 500,
			store: store,
			rootVisible: false,
			useArrows: true,
			columns: [{
				xtype: "treecolumn",
				text: "id",
				dataIndex: "id"
			}, {
				text: "parentId",
				dataIndex: "parentId",
			}, {
				text: "caption",
				dataIndex: "caption"
			}, {
				text: "smthtext",
				dataIndex: "smthtext"
			}],
			renderTo: Ext.getBody()
		});

	store.setRootNode({
		text: "RootNode",
		leaf: false,
		expanded: true,
		id: 0
	});

	t.getRootNode().appendChild(data);
});



Проверяйте Ваш JSON. Осмелюсь предположить, что он, мягко выражаясь, кривоват, соответственно Ваш user_fio не загрузился...
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ExtJS tree.Panel text:
    #37889794
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забыл тынць ...
_________________
"Helo, word!" - 17 errors 56 warnings
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
ExtJS tree.Panel text:
    #37890414
Фотография Маф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо, за помощь, сделал по-другому. В файле дата слил массив, который передается JSON с массивами leaf и с массивом значений user_fio

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
if (@$_REQUEST['line2']){
    $start = (int)@$_REQUEST['start'];
    $limit = (int)@$_REQUEST['limit']?(int)$_REQUEST['limit']:10;
    
    $sort =  @$_REQUEST['sort'];
    $sort_dir =  @$_REQUEST['dir'];
    
    $query = @$_REQUEST['query'];
	$id = @$_REQUEST['id'];
    /*$filters = array();
    if ($query)
      $filters['text'] = $query;
    $column_filter = @$_REQUEST['filter'];
    if ($column_filter && count($column_filter))
        foreach ($column_filter as $f) 
            $filters[$f['field']] = $f['data']['value'];*/
    $filters = array(); // объявлем пустой массив, чтоб его заполнить
    if (@$_REQUEST['node']) //если послано id node..
      {
      	  $filters['user_type_id'] = $_REQUEST['node']; // .. то присвоем user_type_id значение id node 
		  //$filters['user_fio'] = $_REQUEST['node'];
      }
    
    $res= $sample2->getAll($limit, $start, $filters, $sort, $sort_dir);  
    
    if (@$_REQUEST['node'])
    foreach ($res['items'] as $n => $item ){
      $item = array_merge($item,array('leaf'=>true),array('text'=>$item['user_fio'])); 	// array_merge сливает массивы и получается новый. Елементы второго массива добавляются к элементам первого.
      $res['items'][$n] = $item;                        // в данном случае массив item состоит из елементов : $limit, $start, $filters, $sort, $sort_dir , 'leaf'=>true и user_fio
    }
      
    exit(json_encode(array('success'=>true,'data'=>$res['items'],'total'=>$res['total']))); 
	
	
	
	}
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / ExtJS tree.Panel text:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]