Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 13.03.2016, 21:02
Кандидат Javascript-наук
Отправить личное сообщение для leon2009sp Посмотреть профиль Найти все сообщения от leon2009sp
 
Регистрация: 22.12.2015
Сообщений: 106

<script>
            function loadXMLDoc(filename) {
                if (window.ActiveXObject) {
                    xhttp = new ActiveXObject("Msxml2.XMLHTTP");
                }
                else {
                    xhttp = new XMLHttpRequest();
                }
                xhttp.open("GET", filename, false);
                try { xhttp.responseType = "msxml-document" } catch (err) { } // Helping IE11
                xhttp.send(null);
                return xhttp.responseXML;
            }
            document.addEventListener('DOMContentLoaded', function () {
                var xml = loadXMLDoc("xml/city.xml"),
                    selCity = document.querySelector('#city'),
                    selStation = document.querySelector('#station2'),i;
                //    selStation = document.getElementById('#station2'),i;
                [].forEach.call(xml.querySelectorAll('city'), function (el) {
                  // selCity.add(new Option(el.getAttribute('name'), el.getAttribute('name')))
                  
                    document.getElementById('sec1').innerHTML = el.getAttribute('name'),el.getAttribute('name');
                })
                selCity.addEventListener('change', function () {
                    selStation.options.length = 0 , i=0;
                    [].forEach.call(xml.querySelectorAll('city[name=' + this.value + '] > station2'), function (el) {
                     //   selStation.add(new Option(el.textContent, ++i));
                        document.getElementById('sec1').innerHTML = el.textContent;
                    })
                })
            })
        </script>
        <select id=city><option selected>33333333</option></select>
       <div id="sec1">123</div>

ну где же косяк то
Ответить с цитированием
  #32 (permalink)  
Старый 14.03.2016, 05:53
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

в строке 22. , зачем?
Ответить с цитированием
  #33 (permalink)  
Старый 14.03.2016, 07:24
Кандидат Javascript-наук
Отправить личное сообщение для leon2009sp Посмотреть профиль Найти все сообщения от leon2009sp
 
Регистрация: 22.12.2015
Сообщений: 106

это я пробовал по разному если строку 22 оставить то будет загружаться в див последние значение.
а если убрать то нифига не работает. на самом деле как тока не издевался:
selStation.add('sec1');

или вообще весь список файла вылезти в див.
а ее строка 22 отвечает за чтение из файла сити, помещает от туда name в селект (в первый).

Последний раз редактировалось leon2009sp, 14.03.2016 в 07:27. Причина: добавка2
Ответить с цитированием
  #34 (permalink)  
Старый 14.03.2016, 09:50
Кандидат Javascript-наук
Отправить личное сообщение для leon2009sp Посмотреть профиль Найти все сообщения от leon2009sp
 
Регистрация: 22.12.2015
Сообщений: 106

это оставляю как есть!
selCity.add(new Option(el.getAttribute('name'), el.getAttribute('name')))

а строчку вывода где
selStation.add(new Option(el.textContent, ++i));
заменяю на
document.getElementById('sec1').innerHTML = el.textContent;

и по идеи должно работать:
<select id=city><option selected>11111111</option></select>
       <div id="sec1">123</div>
Ответить с цитированием
  #35 (permalink)  
Старый 14.03.2016, 09:58
Кандидат Javascript-наук
Отправить личное сообщение для leon2009sp Посмотреть профиль Найти все сообщения от leon2009sp
 
Регистрация: 22.12.2015
Сообщений: 106

по шагам:
<script>
            function loadXMLDoc(filename) {
                if (window.ActiveXObject) {
                    xhttp = new ActiveXObject("Msxml2.XMLHTTP");
                }
                else {
                    xhttp = new XMLHttpRequest();
                }
                xhttp.open("GET", filename, false);
                try { xhttp.responseType = "msxml-document" } catch (err) { } // Helping IE11
                xhttp.send(null);
                return xhttp.responseXML;
            }

загрузили хмль
document.addEventListener('DOMContentLoaded', function () {
                var xml = loadXMLDoc("xml/city.xml"),
                    selCity = document.querySelector('#city'),
                   // selStation = document.querySelector('#station2'),i;
                    selStation = document.getElementById('#station2'),i;
                [].forEach.call(xml.querySelectorAll('city'), function (el) {
                  selCity.add(new Option(el.getAttribute('name'), el.getAttribute('name')))
                 
                  //  document.getElementById('sec1').innerHTML = el.getAttribute('name'),el.getAttribute('name');
                })

прошлись по сити и именам его а т.е. (name="Новосибирск") или (name="Москва") или name="ленинград".
selCity.addEventListener('change', function () {
                     selStation.options.length = 0 , i=0;
					//selStation.id.length = 0 , i=0;
                    [].forEach.call(xml.querySelectorAll('city[name=' + this.value + '] > station2'), function (el) {
                     //   selStation.add(new Option(el.textContent, ++i));
					 
                     //   document.getElementById('sec1').innerHTML = el.textContent;
					//	 document.getElementById('station2').innerHTML = el.getAttribute('name'),el.getAttribute('name'),i;
					//selStation.add(el.textContent,++i);
					document.getElementById('sec1').innerHTML = '123123123';
                    })
                })
            })
        </script>

начиная с первой строки если выбрали то автоматом выбирается статион пр:
<station2>tpl_novosib1</station2>
.

ХМЛЬ:
<?xml version="1.0" encoding="utf-8"?>
<category>
    <city name="Россия" link="db/russia/ac/index.php">
		<station2>tpl_rus</station2>
	</city>
	<city name="Омск" link="acura.php">
		<station2>tpl_omsk</station2>
	</city>
	<city name="Новосибирск" link="acura.php">
		<station2>tpl_novosib1</station2>
	</city>
</category>
Ответить с цитированием
  #36 (permalink)  
Старый 14.03.2016, 10:10
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Цитата:
selStation = document.getElementById('#station2')
зачем #?
Цитата:
document.getElementById('sec1')
что такое sec1?
Ответить с цитированием
  #37 (permalink)  
Старый 14.03.2016, 13:39
Кандидат Javascript-наук
Отправить личное сообщение для leon2009sp Посмотреть профиль Найти все сообщения от leon2009sp
 
Регистрация: 22.12.2015
Сообщений: 106

selStation = это как занесение в переменную. что то вроде var на delphi.
а sec1 - это как сектор блок. т.е. все что в sec1 отображается в див.
document.getElementById('sec1') можно заменить на  document.getElementById('station2')

от этого ничего не поменяется. а вто "#" юмора не понял. то что много записей? как массив?

Последний раз редактировалось leon2009sp, 14.03.2016 в 13:44. Причина: добавка
Ответить с цитированием
  #38 (permalink)  
Старый 14.03.2016, 16:03
Кандидат Javascript-наук
Отправить личное сообщение для leon2009sp Посмотреть профиль Найти все сообщения от leon2009sp
 
Регистрация: 22.12.2015
Сообщений: 106

если я делаю так:
selCity.add(new Option(el.getAttribute('name'), el.getAttribute('name')))
                 document.getElementById('sec1').innerHTML = el.textContent;

то выдает последний статион он у меня новосиб.
но мне же нужно в цикл его тогда переношу:
selCity.addEventListener('change', function () {
                     selStation.options.length = 0 , i=0;
	
                    [].forEach.call(xml.querySelectorAll('city[name=' + this.value + '] > station2'), function (el) {
     
					document.getElementById('sec1').innerHTML = el.textContent;
                    })

Последний раз редактировалось leon2009sp, 14.03.2016 в 16:04. Причина: добавка
Ответить с цитированием
  #39 (permalink)  
Старый 14.03.2016, 16:45
Кандидат Javascript-наук
Отправить личное сообщение для leon2009sp Посмотреть профиль Найти все сообщения от leon2009sp
 
Регистрация: 22.12.2015
Сообщений: 106

все доперло
проверти на ошибки пожалуйста
<script>
        function loadXMLDoc(filename) {
            if (window.ActiveXObject) {
                xhttp = new ActiveXObject("Msxml2.XMLHTTP");
            }
            else {
                xhttp = new XMLHttpRequest();
            }
            xhttp.open("GET", filename, false);
            try { xhttp.responseType = "msxml-document" } catch (err) { } // Helping IE11
            xhttp.send(null);
            return xhttp.responseXML;
        }
        document.addEventListener('DOMContentLoaded', function () {
            var xml = loadXMLDoc("xml/city.xml"),
                selCity = document.querySelector('#city'),
              //  selStation = document.querySelector('#station2'),i;
				// elem = document.getElementById('my');
				
				selStation = document.getElementById('station2');
				
            [].forEach.call(xml.querySelectorAll('city'), function (el) {
                selCity.add(new Option(el.getAttribute('name'), el.getAttribute('name')))
		})
            selCity.addEventListener('change', function () {
               // selStation.options.length = 0 , i=0;
                [].forEach.call(xml.querySelectorAll('city[name=' + this.value + '] > station2'), function (el) {
                  //  selStation.add(new Option(el.textContent, ++i));
					//document.getElementById('station2').innerHTML = el.textContent;
					selStation.innerHTML = el.textContent;
                })
            })
        })
    </script>
    <select id=city><option selected>1111111</option></select>
    <div id=station2>333333</div>
Ответить с цитированием
  #40 (permalink)  
Старый 14.03.2016, 17:15
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

leon2009sp,
поздравляю
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Читать xml файл без расширения modelka Серверные языки и технологии 2 19.03.2015 13:38
Чтение xml средствами JavaScript pers_tmb Общие вопросы Javascript 9 12.03.2014 18:26
Как загрузить xml из вышележащей директории без обращения к серверу? Parez Общие вопросы Javascript 11 06.05.2011 22:45
как правильно прочесть xml без подключения jQuery BorodinKO Общие вопросы Javascript 1 03.04.2011 23:23
Поиск и чтение атрибутов в XML Armen Общие вопросы Javascript 4 12.03.2011 22:20