powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / дерево с ajax подзагрузкой
2 сообщений из 2, страница 1 из 1
дерево с ajax подзагрузкой
    #38137052
pek1992
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мне необходимо переделать вот этот пример http://javascript.ru/ui/ajaxtree

я пытаюсь динамически заполнять дерево из базы. Файл data.php выглядит так
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
<?php
$type = $GET_["type"];
$node = array();
....
$result = mysql_query($query);
	//Обработка и вывод результатов SQL-запроса
	while ($row = mysql_fetch_array($result, MYSQL_ASSOC)){
//usleep(500000);
$id = $row["STR_ID"];
$title = $row["STR_DES_TEXT"];
$folder = $row["DESCENDANTS"];

	$node[] = "{ id: $id, type: $type, title: '$title', isFolder: $folder }";
}
echo '['.implode(',',$node).']';


Перепробовал кучу вариантов, прочел и попробовал всё из коментариев к статье...
вот js:
Код: 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.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
function tree(id, url) {
	var element = document.getElementById(id)

	function hasClass(elem, className) {
		return new RegExp("(^|\\s)"+className+"(\\s|$)").test(elem.className)
	}

	function toggleNode(node) {
		var newClass = hasClass(node, 'ExpandOpen') ? 'ExpandClosed' : 'ExpandOpen'
		var re =  /(^|\s)(ExpandOpen|ExpandClosed)(\s|$)/
		node.className = node.className.replace(re, '$1'+newClass+'$3')
	}

	function load(node) {

		function showLoading(on) {
			var expand = node.getElementsByTagName('DIV')[0]
			expand.className = on ? 'ExpandLoading' : 'Expand'
		}


		function onSuccess(data) {
			if (!data.errcode) {
				onLoaded(data)
				showLoading(false)
			} else {
				showLoading(false)
				onLoadError(data)
			}
		}


		function onAjaxError(xhr, status){
			showLoading(false)
			var errinfo = { errcode: status }
			if (xhr.status != 200) {
				errinfo.message = xhr.statusText
			} else {
				errinfo.message = 'Error Data11'
			}
			onLoadError(errinfo)
		}


		function onLoaded(data) {
    for(var i=0; i<data.length; i++) {
    var child = data[i]
                
    var li = document.createElement('LI')
    li.className = "Node Expand" + (child.isFolder ? 'Closed' : 'Leaf')
    if (i == data.length-1) li.className += ' IsLast'

    li.id = child.id

    li.innerHTML = '<div class="Expand"></div><div class="Content">'+child.title+'</div>'
    if (child.isFolder) {
    li.innerHTML += '<ul class="Container"></ul>'
    }
 node.getElementsByTagName('UL')[0].appendChild(li)
                 
  }
 node.isLoaded = true
 toggleNode(node)
}

		function onLoadError(error) {
			var msg = "Error"+error.errcode
			if (error.message) msg = msg + ' :'+error.message
			alert(msg)
		}


		showLoading(true)

		$.ajax({

            url: url,			
			data: { id: node.STR_ID, type: node.type },
			dataType: "json",
			success: onSuccess,
			error: onAjaxError,
			cache: false
		})
	}

	element.onclick = function(event) {
		event = event || window.event
		var clickedElem = event.target || event.srcElement

		if (!hasClass(clickedElem, 'Expand')) {
			return 
		}

		
		var node = clickedElem.parentNode
		if (hasClass(node, 'ExpandLeaf')) {
			return 
		}

		if (node.isLoaded || node.getElementsByTagName('LI').length) {
			toggleNode(node)
			return
		}

		if (node.getElementsByTagName('LI').length) {
			toggleNode(node)
			return
		}

		load(node)

	}

}


Выдает ошибку "Error Data11".

Если напрямую обращаюсь к data.php с параметрами отвечает вроде правильно..

[{ id: 10102, type: , title: 'Двигатель', isFolder: 1 },{ id: 10104, type: , title: 'Система выпуска', isFolder: 1 },{ id: 10105, type: , title: 'фильтр', isFolder: 1 },{ id: 10106, type: , title: 'тормозная система', isFolder: 1 },{ id: 10107, type: , title: 'Система охлаждения', isFolder: 1 },{ id: 10108, type: , title: 'Система зажигания / накаливания', isFolder: 1 },{ id: 10110, type: , title: 'Электрика', isFolder: 1 },{ id: 10111, type: , title: 'Подвеска / амортизация', isFolder: 1 },{ id: 10112, type: , title: 'рулевое управления', isFolder: 1 },{ id: 10113, type: , title: 'Подвеска оси / система подвески / колеса', isFolder: 1 },{ id: 10114, type: , title: 'Привод колеса', isFolder: 1 },{ id: 10116, type: , title: 'Ременный привод', isFolder: 1 },{ id: 10118, type: , title: 'Система очистки окон', isFolder: 1 },{ id: 10119, type: , title: 'Детали для сервиса / ТО / ухода', isFolder: 1 },{ id: 10314, type: , title: 'система подачи топлива', isFolder: 1 },{ id: 10354, type: , title: 'Подготовка топливной смеси', isFolder: 1 }]

Помогите пожалуйста разобраться....
...
Рейтинг: 0 / 0
дерево с ajax подзагрузкой
    #38139258
pek1992
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
кто нить подскажет в чем здесь проблема?
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / дерево с ajax подзагрузкой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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