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

leon2009sp 14.03.2016 22:58

ссылки идут как текст
 
Вложений: 1
ссылки не могу терь передать и загрузить файлы:
пр:
<xsl:for-each select="category/cat_a">
                        <ul>
                          <xsl:value-of select="@category"/>
						  <xsl:for-each select="marka">
						  
                              <li>
							<xsl:value-of select="@name"/> 	
							<xsl:value-of select="@link"/>							
                              </li>
                          </xsl:for-each>
                        </ul>
                </xsl:for-each>

они пишутся но в <a href> тоже текстом идут.
и если загружаешь как include использовать iframe?

leon2009sp 15.03.2016 14:53

document.getElementById("example").href = ex;

так не работает

leon2009sp 21.03.2016 08:02

при обработке формы выдает цифры:
<form action='' method='post' enctype='multipart/form-data'>
<script src='../js/search.js'></script>
<div class=new-select-style-wpandyou>
<select id=marka name=marka><option selected>Выберите_авто</option></select>
</div>
<div class=new-select-style-wpandyou>
<select id=model name=model>Выберите Модель</select>
</div>
</form>
echo "marka====".$s_marka."<br>";
echo "model====".$s_model."<br>";

и получается "marka" выдает слова которое берется из xml документа.
а модель выдает цифры :help:
пр: Марка = ferrari а модель = "0" или 1 или 2 от выбраного слова в модели.
как этого избежать????

destus 21.03.2016 08:09

а JS код на парсинг этой части?

leon2009sp 21.03.2016 08:16

$s_model =  substr(htmlspecialchars(trim($_POST['model'])), 0, 100);
$s_marka =  substr(htmlspecialchars(trim($_POST['marka'])), 0, 100);
echo "marka====".$s_marka."<br>";
echo "model====".$s_model."<br>";

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));
            })
        })
    })

leon2009sp 21.03.2016 08:47

вот эта строчка отвечает за нумерацию
selStation.options.length = 0 , i=0;

но как на выходе сделать чтобы выдавала слова. а не нумерацию

destus 21.03.2016 08:57

leon2009sp,
xml ещё кинь

leon2009sp 21.03.2016 09:14

xml:
<?xml version="1.0" encoding="utf-8"?>
<category>
<cat_a category="Категория_A">
    <marka name="AC" link="ac/index.php" category="Категория_A">
		<model>AC</model>
		<model>Cobra</model>
	</marka>
	<marka name="Acura" link="acura/index.php">
		<model proba="1111111">CL</model>
		<model proba="222222">CSX</model>
		<model proba="233333">EL</model>
		<model>ILX</model>
		<model>Integra</model>
		<model>Legend</model>
		<model>MDX</model>
		<model>NSX</model>
	</marka>
    <marka name="Alfa_Romeo" link="alfaromeo/index.php">
		<model>145</model>
		<model>146</model>
		<model>147</model>
		<model>155</model>
	</marka>
</cat_a>
</category>

destus 21.03.2016 10:02

Ну потому что здесь
<marka name="Alfa_Romeo" link="alfaromeo/index.php">
        <model>145</model>
        <model>146</model>
        <model>147</model>
        <model>155</model>

идут цифры и el.textContent в строке 24 будет 145,146,147...

leon2009sp 21.03.2016 10:17

нет: даже если сделать так:
<?xml version="1.0" encoding="utf-8"?>
<category>
<cat_a category="Категория_A">
    <marka name="AC" link="ac/index.php" category="Категория_A">
		<model>AC</model>
		<model>Cobra</model>
	</marka>
	<marka name="Acura" link="acura/index.php">
		<model proba="1111111">CL</model>
		<model proba="222222">CSX</model>
		<model proba="233333">EL</model>
		<model>ILX</model>
		<model>Integra</model>
		<model>Legend</model>
		<model>MDX</model>
		<model>NSX</model>
	</marka>
    <marka name="Alfa_Romeo" link="alfaromeo/index.php">
		<model>вася</model>
		<model>петя</model>
		<model>маша</model>
		<model>толя</model>
	</marka>
</cat_a>
</category>

все ровно будет выдавать 0,1,2,3,4,5

leon2009sp 21.03.2016 10:20

изменил строку на
selStation.add(new Option(el.textContent));

и теперь выводит слова :blink:
так можно надеюсь. я иногда сам в шоке, туплю неделю, а потом за пару мин доходит что я делаю не так или на оборот так.

leon2009sp 21.03.2016 10:47

спасибо! профессор
 
Цитата:

Сообщение от leon2009sp (Сообщение 411571)
изменил строку на
selStation.add(new Option(el.textContent));

и теперь выводит слова :blink:
так можно надеюсь. я иногда сам в шоке, туплю неделю, а потом за пару мин доходит что я делаю не так или на оборот так.

Профессор Спасибо!!! :) а то я бы еще неделю сидел и думал чтож удалить чтобы заработало!

leon2009sp 04.04.2016 06:39

не выводит второй раз
 
:write: можно еще вопросик, почему не выводит на второй раз результат,
и можно ли передать результат в {$s_city} :help: строка 3,4
<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_reg.xml"),
                selCity = document.querySelector('#city'),			
				selStation = document.getElementById('ob');				
            [].forEach.call(xml.querySelectorAll('city'), function (el) {
                selCity.add(new Option(el.getAttribute('name'), el.getAttribute('name')))
		})
            selCity.addEventListener('change', function () {
                [].forEach.call(xml.querySelectorAll('city[name=' + this.value + '] > ob'), function (el) {
					selStation.innerHTML = el.textContent;
                })
            })
        })
    </script>
    <select id=city><option selected>1111111</option></select>   
	<a href=ob id=ob name=links2>111</a>
	<a href=ob id=ob name=links2>111</a>
<?php
echo "
<table align=center border=0 cellpadding=0 cellspacing=0 width=100% class=inf4>
<tr>
<td align=center width=15% title=num1><ul class=tops>";
foreach($xml_db->cat_a as $cat_a)
{
echo "<ol class=link1><font color=#ADADAB>{$cat_a['category']}</font></ol>";
foreach($cat_a->marka as $marka)
{
echo "<li align=left><a href=db/auto/{$s_city}/{$marka['link']} class=link2>{$marka['name']}</a></li>";	
}
}
?>

leon2009sp 05.04.2016 11:21

до чего до полз
 
<script type="text/javascript">

var ob = 'div';

</script>

<?php
if (isset($_GET['u_name']))
{
    echo "Значение JavaScript-переменной: ". $_GET['u_name'];
}

else
{
    echo '<script type="text/javascript">';
    echo 'document.location.href="' . $_SERVER['REQUEST_URI'] . '?u_name=" + ob';
    echo '</script>';
    exit();
}
?>
теперь не знаю как из div передать

destus 05.04.2016 17:21

leon2009sp,
Не получится запихать javascript переменную в скрипт php. Разве что через HTTP запрос передать.

leon2009sp 06.04.2016 03:06

т.е. ссылки в любом случаи придется через javascript выводить?

destus 06.04.2016 05:30

О каких ссылках речь?

leon2009sp 06.04.2016 07:40

<?php
echo "
<table align=center border=0 cellpadding=0 cellspacing=0 width=100% class=inf4>
<tr>
<td align=center width=15% title=num1><ul class=tops>";
foreach($xml_db->cat_a as $cat_a)
{
echo "<ol class=link1><font color=#ADADAB>{$cat_a['category']}</font></ol>";
foreach($cat_a->marka as $marka)
{
echo "<li align=left><a href=db/auto/{$s_city}/{$marka['link']} class=link2>{$marka['name']}</a></li>";
}
}
?>

http://angar18.esy.es/ в низу
категория А,Б,С,Е .... нажимаешь на ссылку и попадаешь на страницу по категории, но хотел бы туда и города в паять.

leon2009sp 06.04.2016 10:55

т.к. чтобы вывести ссылки через javascript это три листа, а на php 3 строчки

leon2009sp 06.04.2016 22:16

до такого точно никто не дошел
 
ну посоветуйте как лучше и что лучше сделать?
уже и до такого докатился:
<?php
echo "<div id=ob ";
echo "name=prob3 value=123123>000000</div>";
?>

:lol:
<?php
$mmm= "<div id=ob echo name=prob3 value=123123>000000</div>";
echo "<a href=123123123".$mmm."-----</a>";
?>
:blink:
да меняет только имя ссылки но не ее саму
так же прокатило с именем, почему на св-ва ссылки не хочет???????
<?php
$mmm= "<div id=ob echo name=prob3 value=123123>000000</div>";
echo "<a href=213123>".$mmm."</a>";
?>

destus 07.04.2016 18:42

Не могу помочь.


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