powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / КАК заполнить select данными из xml?
20 сообщений из 20, страница 1 из 1
КАК заполнить select данными из xml?
    #34150584
К123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как заполнить список элемента select (поле со списком) html-странички данными из xml через jscript?
Имеется база кадров в xml. Требуется делать выборку по должностям. Должности выбираются элементом select. Но его нужно предварительно заполнить списком должностей при загрузке странички. Как это сделать?
...
Рейтинг: 0 / 0
КАК заполнить select данными из xml?
    #34150688
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно ручками, можно через хслт (в опере - только с девятой версии)
...
Рейтинг: 0 / 0
КАК заполнить select данными из xml?
    #34151010
Ottor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вызываем функцию в начале 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
КАК заполнить select данными из xml?
    #34152193
k123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чо то у меня не работает просто заполнение :( 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
КАК заполнить select данными из xml?
    #34152358
Ottor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выглядеть должно так
Код: 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
КАК заполнить select данными из xml?
    #34152636
k123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я пока на своём примере тренируюсь:
Код: 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
КАК заполнить select данными из xml?
    #34152737
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может, вам, товарищи, с helloworld начать?
...
Рейтинг: 0 / 0
КАК заполнить select данными из xml?
    #34153041
К123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maXmoможет, вам, товарищи, с helloworld начать?
:( Лучше бы помогли...
...
Рейтинг: 0 / 0
КАК заполнить select данными из xml?
    #34153121
Фотография SkyLight
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
K123
Так вот, на экране выводится строка: "add_elem_to_combo(Name_select, "", "выберите из списка");"
:(

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

Естессно она выводицца. Глянь, где ты её написал! Это ж вызов функции, а всё шо скрипт должно быть внутри <script></script>
Дык по аналогии с листингом Ottor.
Внутри <script></script> всё равно не работает: список пуст.
...
Рейтинг: 0 / 0
КАК заполнить select данными из xml?
    #34154085
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ты пытаешься заполнить элемент на стадии парсинга (до парсинга элемента), что есть нехорошо.
...
Рейтинг: 0 / 0
КАК заполнить select данными из xml?
    #34154178
Ottor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да сам промахнулся малость :-(
Код: 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
КАК заполнить select данными из xml?
    #34154844
К123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ, ну приведите здесь рабочий пример с рабочими данными.
Который я мог бы реально запустить и посмотреть его работу.
...
Рейтинг: 0 / 0
КАК заполнить select данными из xml?
    #34159879
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
КАК заполнить select данными из xml?
    #34161325
К123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maXmo,
Ну вот другое дело! :)
Спасибо :)
...
Рейтинг: 0 / 0
КАК заполнить select данными из xml?
    #34161586
К123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Теперь поехали дальше :)
Я создал файлик 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
КАК заполнить select данными из xml?
    #34161645
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
может, всё-таки программирование - это не твоё?
...
Рейтинг: 0 / 0
КАК заполнить select данными из xml?
    #34162132
k123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmo,
А я и не программист, а сисадмин.
Изредка раз в год возникают программисткие надобности.
Впринципе я сделал года назад на jscript просмотр xml-файла.
Но за давностью уже забыл как делал :)
Ну не хочешь, не помогай.
...
Рейтинг: 0 / 0
КАК заполнить select данными из xml?
    #34162278
k123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ладно, всем спасибо. Решил я эту проблемму:
Код: 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
20 сообщений из 20, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / КАК заполнить select данными из xml?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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