Гость
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / КАК заполнить select данными из xml? / 20 сообщений из 20, страница 1 из 1
23.11.2006, 15:20
    #34150584
К123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
КАК заполнить select данными из xml?
Как заполнить список элемента select (поле со списком) html-странички данными из xml через jscript?
Имеется база кадров в xml. Требуется делать выборку по должностям. Должности выбираются элементом select. Но его нужно предварительно заполнить списком должностей при загрузке странички. Как это сделать?
...
Рейтинг: 0 / 0
23.11.2006, 15:49
    #34150688
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
КАК заполнить select данными из xml?
можно ручками, можно через хслт (в опере - только с девятой версии)
...
Рейтинг: 0 / 0
23.11.2006, 16:58
    #34151010
Ottor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
КАК заполнить select данными из xml?
Вызываем функцию в начале HTML файла
Код: plaintext
getComboFromXML_Reg("boot_XML_element", Name_select, 'XML_sorce');
Сама функция
Код: plaintext
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.
function add_elem_to_combo(combo, value, text)
{
	var elem = document.createElement("OPTION");
	elem.value = value;
	elem.text = text;
	combo.options.add(elem);
}

function getComboFromXML_messenger(path, combo, xmlStr)
{
	try
	{
		var xml = new ActiveXObject("Msxml2.DOMDocument");
		xml.async = false;
		xml.loadXML(xmlStr);

		// очищаем combo
		if( combo.options )
		{
			cmbLen = combo.options.length;
			for( var i =  0 ; i < cmbLen; i++ ) combo.options.remove( 0 );
		}

		add_elem_to_combo(combo, "", "выберите из списка"); //пустой select

		var child = 'XML_element'; 
		var oSelct = xml.selectSingleNode(path);
		
		if( !oSelct || !oSelct.hasChildNodes() ) return;

		var oNodes;
		oNodes = oSelct.selectNodes(child);
		for( var j =  0 ; j < oNodes.length; j++ )
		{
			var val = oNodes.item(j).getAttribute("XML_element");
			var txt = val;
			add_elem_to_combo(combo, val, txt);
		}
	} catch(e) {
		findError('getComboFromXML_messenger', e.description);
	}
}
Вставляем в HTML код
Код: plaintext
1.
<SELECT id="Name_select" name="Name">
</SELECT>
...
Рейтинг: 0 / 0
24.11.2006, 09:09
    #34152193
k123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
КАК заполнить select данными из xml?
Чо то у меня не работает просто заполнение :( Explorer с ошибкой вылетает...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<html>
<body>
<script>
add_elem_to_combo(Name_select, "", "выберите из списка"); //пустой select
add_elem_to_combo(Name_select, "1", "первый элемент"); //
function add_elem_to_combo(combo, value, text)
{
	var elem = document.createElement("OPTION");
	elem.value = value;
	elem.text = text;
	combo.options.add(elem);
}
</script>
<SELECT id="Name_select" name="Name">
</SELECT>
</body>
</html>
Что здесь не так?
...
Рейтинг: 0 / 0
24.11.2006, 09:56
    #34152358
Ottor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
КАК заполнить select данными из xml?
Выглядеть должно так
Код: plaintext
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.
<html>
<script>
function add_elem_to_combo(combo, value, text)
{
	var elem = document.createElement("OPTION");
	elem.value = value;
	elem.text = text;
	combo.options.add(elem);
}

function getComboFromXML_messenger(path, combo, xmlStr)
{
		var xml = new ActiveXObject("Msxml2.DOMDocument");
		xml.async = false;
		xml.loadXML(xmlStr);

		// очищаем combo
		if( combo.options )
		{
			cmbLen = combo.options.length;
			for( var i =  0 ; i < cmbLen; i++ ) combo.options.remove( 0 );
		}

		add_elem_to_combo(combo, "", "выберите из списка"); //пустой select

		var child = 'XML_element'; 
		var oSelct = xml.selectSingleNode(path);
		
		if( !oSelct || !oSelct.hasChildNodes() ) return;

		var oNodes;
		oNodes = oSelct.selectNodes(child);
		for( var j =  0 ; j < oNodes.length; j++ )
		{
			var val = oNodes.item(j).getAttribute("XML_element");
			var txt = val;
			add_elem_to_combo(combo, val, txt);
		}

}
</script>

<body>
getComboFromXML_Reg("boot_XML_element", Name_select, 'XML_sorce');
<SELECT id="Name_select" name="Name">
</SELECT>
</body>
</html>
...
Рейтинг: 0 / 0
24.11.2006, 11:00
    #34152636
k123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
КАК заполнить select данными из xml?
Я пока на своём примере тренируюсь:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
<html>
<script>

function add_elem_to_combo(combo, value, text)
{
	var elem = document.createElement("OPTION");
	elem.value = value;
	elem.text = text;
	combo.options.add(elem);
}
</script>
<body>
add_elem_to_combo(Name_select, "", "выберите из списка");

<SELECT id="Name_select" name="Name">
</SELECT>
</body>
</html>
Так вот, на экране выводится строка: "add_elem_to_combo(Name_select, "", "выберите из списка");"
:(
...
Рейтинг: 0 / 0
24.11.2006, 11:19
    #34152737
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
КАК заполнить select данными из xml?
может, вам, товарищи, с helloworld начать?
...
Рейтинг: 0 / 0
24.11.2006, 12:18
    #34153041
К123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
КАК заполнить select данными из xml?
maXmoможет, вам, товарищи, с helloworld начать?
:( Лучше бы помогли...
...
Рейтинг: 0 / 0
24.11.2006, 12:36
    #34153121
SkyLight
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
КАК заполнить select данными из xml?
K123
Так вот, на экране выводится строка: "add_elem_to_combo(Name_select, "", "выберите из списка");"
:(

Естессно она выводицца. Глянь, где ты её написал! Это ж вызов функции, а всё шо скрипт должно быть внутри <script></script>
...
Рейтинг: 0 / 0
24.11.2006, 13:15
    #34153303
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
КАК заполнить select данными из xml?
К123:( Лучше бы помогли...я и помогаю (советом прекратить программить рандомом)
...
Рейтинг: 0 / 0
24.11.2006, 14:49
    #34153733
К123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
КАК заполнить select данными из xml?
SkyLight K123
Так вот, на экране выводится строка: "add_elem_to_combo(Name_select, "", "выберите из списка");"
:(

Естессно она выводицца. Глянь, где ты её написал! Это ж вызов функции, а всё шо скрипт должно быть внутри <script></script>
Дык по аналогии с листингом Ottor.
Внутри <script></script> всё равно не работает: список пуст.
...
Рейтинг: 0 / 0
24.11.2006, 15:57
    #34154085
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
КАК заполнить select данными из xml?
ты пытаешься заполнить элемент на стадии парсинга (до парсинга элемента), что есть нехорошо.
...
Рейтинг: 0 / 0
24.11.2006, 16:17
    #34154178
Ottor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
КАК заполнить select данными из xml?
Да сам промахнулся малость :-(
Код: plaintext
1.
2.
<body>
getComboFromXML_Reg("boot_XML_element", Name_select, 'XML_sorce');
<SELECT id="Name_select" name="Name">

Добжно быть
Код: plaintext
1.
2.
3.
getComboFromXML_Reg("boot_XML_element", Name_select, 'XML_sorce');
</script>
<body>
<SELECT id="Name_select" name="Name">

А для того что бы работало надо что бы у тебя были данные в XML фотмате в переменной XML_sorce
...
Рейтинг: 0 / 0
24.11.2006, 20:25
    #34154844
К123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
КАК заполнить select данными из xml?
Народ, ну приведите здесь рабочий пример с рабочими данными.
Который я мог бы реально запустить и посмотреть его работу.
...
Рейтинг: 0 / 0
28.11.2006, 10:46
    #34159879
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
КАК заполнить select данными из xml?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
<html>
<head>
<script type="text/javascript">
function add_elem_to_combo(combo, value, text)
{
	var elem = document.createElement("option");
	elem.value = value;
	elem.text = text;
	combo.options.add(elem);
}
</script>
</head>
<body onload="add_elem_to_combo(document.getElementById('Name_select'),
 '', 'выберите из списка');">
<select id="Name_select"></select>
</body>
</html>
...
Рейтинг: 0 / 0
28.11.2006, 16:03
    #34161325
К123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
КАК заполнить select данными из xml?
maXmo,
Ну вот другое дело! :)
Спасибо :)
...
Рейтинг: 0 / 0
28.11.2006, 16:52
    #34161586
К123
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
КАК заполнить select данными из xml?
Теперь поехали дальше :)
Я создал файлик select.xml
Код: plaintext
1.
2.
3.
4.
<?xml version="1.0" encoding="WINDOWS-1251"?>
<SotrBase>
<Podr>Администрация</Podr>
<Podr>ТехПерсонал</Podr>
</SotrBase>
запускаю файл:
Код: plaintext
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.
<html>
<head>
<script type="text/javascript">
function add_elem_to_combo(combo, value, text)
{
	var elem = document.createElement("option");
	elem.value = value;
	elem.text = text;
	combo.options.add(elem);
}

function getComboFromXML_messenger(path, combo, xmlStr)
{
	try
	{
		var xml = new ActiveXObject("Msxml2.DOMDocument");
		xml.async = false;
		xml.loadXML(xmlStr);

		// очищаем combo
		if( combo.options )
		{
			cmbLen = combo.options.length;
			for( var i =  0 ; i < cmbLen; i++ ) combo.options.remove( 0 );
		}

		add_elem_to_combo(combo, "", "выберите из списка"); //пустой select

		var child = 'XML_element'; 
		var oSelct = xml.selectSingleNode(path);
		
		if( !oSelct || !oSelct.hasChildNodes() ) return;

		var oNodes;
		oNodes = oSelct.selectNodes(child);
		for( var j =  0 ; j < oNodes.length; j++ )
		{
			var val = oNodes.item(j).getAttribute("XML_element");
			var txt = val;
			add_elem_to_combo(combo, val, txt);
		}
	} catch(e) {
		findError('getComboFromXML_messenger', e.description);
	}
}
</script>
</head>
<body onload="getComboFromXML_messenger('SotrBase\Podr',Name_select,'select.xml');">
<select id="Name_select"></select>
</body>
</html>
Заполняется только строка "выберите из списка". Что здесь не так?
...
Рейтинг: 0 / 0
28.11.2006, 17:02
    #34161645
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
КАК заполнить select данными из xml?
может, всё-таки программирование - это не твоё?
...
Рейтинг: 0 / 0
28.11.2006, 19:13
    #34162132
k123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
КАК заполнить select данными из xml?
maXmo,
А я и не программист, а сисадмин.
Изредка раз в год возникают программисткие надобности.
Впринципе я сделал года назад на jscript просмотр xml-файла.
Но за давностью уже забыл как делал :)
Ну не хочешь, не помогай.
...
Рейтинг: 0 / 0
28.11.2006, 20:28
    #34162278
k123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
КАК заполнить select данными из xml?
Ладно, всем спасибо. Решил я эту проблемму:
Код: plaintext
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.
<html>
<head>
<XML ID="dsoSotrBase" SRC="select.xml"></XML>
<script type="text/javascript">
function add_elem_to_combo(combo, value, text)
{
	var elem = document.createElement("option");
	elem.value = value;
	elem.text = text;
	combo.options.add(elem);
}

function getComboFromXML_messenger(path, combo, xmlStr)
{
	//очищаем combo
	if( combo.options )
	{
	       cmbLen = combo.options.length;
	       for( var i =  0 ; i < cmbLen; i++ ) combo.options.remove( 0 );
	}

	add_elem_to_combo(combo, "", "Все"); //первый select

            dsoSotrBase.recordset.moveFirst();
            while(!dsoSotrBase.recordset.EOF){
              var val = dsoSotrBase.recordset.fields( 0 ).value;
	      var txt = val;
	      add_elem_to_combo(combo, val, txt);
	      dsoSotrBase.recordset.moveNext();
    }
}
</script>
</head>
<body onload="getComboFromXML_messenger('SotrBase',Name_select,'select.xml');">
<select id="Name_select"></select>
</body>
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / КАК заполнить select данными из xml? / 20 сообщений из 20, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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