Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / дерево с ajax подзагрузкой / 2 сообщений из 2, страница 1 из 1
04.02.2013, 20:56
    #38137052
pek1992
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
дерево с ajax подзагрузкой
мне необходимо переделать вот этот пример 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
06.02.2013, 04:33
    #38139258
pek1992
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
дерево с ajax подзагрузкой
кто нить подскажет в чем здесь проблема?
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / дерево с ajax подзагрузкой / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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