Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   чтение xml без жкуиерити (https://javascript.ru/forum/misc/61523-chtenie-xml-bez-zhkuieriti.html)

destus 05.03.2016 11:05

leon2009sp,
потому что в 35 строке идет добавление опции именно в Select

leon2009sp 05.03.2016 12:23

проба с инпутом
 
selinput = document.getElementById('#station2'),i;
selinput.value (new Value(el.textContent, ++i));

нее?? :blink:
и слово Option если ставишь маленькую "о", то ничего не работает, при этому все слова заменил на меленькую о...

destus 05.03.2016 12:30

leon2009sp,
Цитата:

и слово Option если ставишь маленькую "о", то ничего не работает
ну потому что Option это имя конструктора, в JS так принято - имена конструкторов с большой буквы.
Цитата:

selinput = document.getElementById('#station2'),i;
selinput.value (new Value(el.textContent, ++i));

нет, это неправильно. Если selinput это некий input с type=text, то
selinput.value += el.textContent
и переменная i здесь не нужна.

leon2009sp 06.03.2016 04:21

если по честному то я пробывал так:
27:selInput = document.getElementById('#station2'),i;
32:selInput.value.length = 0 , i=0;
35:selInput.value += el.textContent;

с DIV тоже самое проделывал, но как я понял надо поменять еще что то :blink:

leon2009sp 06.03.2016 05:14

так тоже:
div = document.getElementById('#station2');
selCity.addEventListener('change', function () {
            div.id = 0 , i=0;
div.id += el.textContent;

leon2009sp 07.03.2016 14:23

не доходит.. :cray:
<?php 
echo "
<select id='city'><option selected>Выберите город</option></select>
$primer='#station2';
";
echo id;
?>

или здесь выбора нету? только через форму?

destus 07.03.2016 16:27

leon2009sp,
Лучше описать что конкретно надо, может помогут. Пока какие-то непонятные попытки.

leon2009sp 07.03.2016 22:55

пример скрипта
 
попробую рассказать: у меня есть файл index.php в него через #include в писаны файлы шапка.html поиск.html
index.php
<div id=inf align=center>
<div>"; include 'template/inf0.tpl'; echo "</div>
<div>"; include 'template/inf1.tpl'; echo "</div>
<div>"; //include 'template/inf2.tpl';
 echo "</div>
<div>"; include 'template/inf3.tpl'; echo "</div>
<div>"; include 'template/inf4.tpl'; echo "</div>
<div>&nbsp;</div>
<div>"; include 'template/inf5.tpl'; echo "</div>
<div>


поиск.html :write: еще не добрался. где селект выбор городов.

link.html
<?php
$xml = simplexml_load_file("xml/info.xml") or die("Error: Cannot create object");
echo "<table align=center border=0 cellpadding=8 cellspacing=8 width=80% class=link2>
<tr>";
if(!empty($xml->book1->page))
{
    $agrs = $xml->book1->page;
    foreach ($agrs as $vals)
    {
        echo "<td><a href=$vals[name] class=link2>$vals</a></td>";
		
    }
}
echo "</tr><tr>";
if(!empty($xml->book2->page))
{
    $agrs = $xml->book2->page;
    foreach ($agrs as $vals)
    {
        echo "<td><a href=$vals[name] class=link2>$vals</a></td>";
		
    }
}
echo "</tr><tr>";
if(!empty($xml->book3->page))
{
    $agrs = $xml->book3->page;
    foreach ($agrs as $vals)
    {
        echo "<td><a href=$vals[name] class=link2>$vals</a></td>";
		
    }
}
echo "</tr><tr>";
if(!empty($xml->book4->page))
{
    $agrs = $xml->book4->page;
    foreach ($agrs as $vals)
    {
        echo "<td><a href=$vals[name] class=link2>$vals</a></td>";
		
    }
}
echo "</tr></table>";
?>

но файлов много пр: inf_omsk.tpl inf_moskva.tpl. inf_novosib.tpl
теперь когда ставлю два когда script на динамический селект, то выбирается первый селект второй уже не работает.
и если пр выбираешь один город то загрузка в div3,4 меняется.
т.е. выбрал Москва загрузился файл inf_moscu.tpl...
как только ставишь два скрипта то перестает работать, даже если они находятся в разных файлах

leon2009sp 08.03.2016 09:16

понял как с формулировать:
в inf0.tpl код на выбор городов:
<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;
        [].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));
            })
        })
    })
</script>


<div class=selectind><select id=city><option selected>Россия_1</option></select></div></td>
<td>
<div class=selectind>inf3_moscu.tpl</div>

как загружать другие файлы? inf3_omsk.tpl inf3_novosib.tpl
этот код содержится в inf0.tpl
----------------------
в файле inf2.tpl будет поиск т.е:
<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/db.xml"),
            selCity = document.querySelector('#marka'),
            selStation = document.querySelector('#model'),
            i;
        [].forEach.call(xml.querySelectorAll('marka'), 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('marka[name=' + this.value + '] > model'), function (el) {
                selStation.add(new Option(el.textContent, ++i));
            })
        })
    })
</script>

<div class=new-select-style-wpandyou>
  <select id=marka><option selected>Выберите авто</option></select>
</div></td>
<td>
<div class=new-select-style-wpandyou>
<select id=model>Выберите Модель</select>
</div>

но когда эти два скрипта находятся в месте а include связывает страницу в целое. т.е. два скрипта на одной стрнице работают не правельно.. и не знаю как загрузить файлы inf3_gorod.tpl

leon2009sp 08.03.2016 09:21

а также при выборе города должны загружаться ссылки в inf5.tpl. при выборе города:
пр: inf3_novosib.tpl значит ссылка будет novosib/ac/index.html. но пока она как ac/index.html


Часовой пояс GMT +3, время: 02:59.