<?xml version="1.0" encoding="utf-8"?>
<category>
<city name="Россия" link="db/russia/index.php">
<station2>inf3_rus.tpl</station2>
</city>
<city name="Омск" link="db/omsk/index.php">
<station2>tpl_omsk</station2>
</city>
<city name="Омск" link="db/novosib/index.php">
<station2>tpl_novosib</station2>
</city>
</category>
|
Содержание xml/city.xml и xml/db.xml надо. Хотя бы небольшой макет с несколькими дефолтными значениями. И что это за файлы inf3_omsk.tpl inf3_novosib.tpl мне непонятно.
|
файл city.xml
<?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>
</category>
файл db.xml
<?xml version="1.0" encoding="utf-8"?>
<category>
<cat_a category="Категория_A">
<marka name="AC" link="db/russia/ac/index.php">
<model>AC</model>
<model>Cobra</model>
</marka>
<marka name="Acura" link="acura.php">
<model>CL</model>
<model>CSX</model>
</marka>
<marka name="Alfa_Romeo" link="alfaromeo.php">
<model>145</model>
<model>146</model>
</marka>
</cat_a>
<cat_b category="Категория_B">
<marka name="Bentley" link="db/bentley.php">
<model>Arnage</model>
<model>Azure</model>
</marka>
<marka name="BMW" link="bmw.php">
<model>1_Series</model>
<model>2_Series</model>
</marka>
</category>
tpl это простой файл html только расширение tpl . держи просил удалил |
пример файла inf0.tpl
<html>
<head>
<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>
</head>
<body>
<?php
echo "
<div class=selectind><select id=city><option selected>Россия_1</option></select></div></td>
<td>
<div class=selectind> </div>
?>
</body></html>
|
leon2009sp,
и что на выходе должно получиться? Можно на словах, а можно и сверстать HTML. |
лучше на словах, а то еще километр кода :blink:
в inf0.tpl я выбираю город, значит в index.php в диве загружается inf3_*.tpl и город который выбрал, и в inf4.tpl ссылка должна меняться. пр: db/moscu/ac/index.php или db/novosib/ac/index.php я думал если в javascript выбирать город и передавать его. city=novosib; city=moscu; <marka name="AC" link="db/$city/ac/index.php"> не совсем, это чтобы понятней было: на самом деле так:
$xml = simplexml_load_file("xml/db.xml") or die("Error: Cannot create object");
echo "
<ul class=tops>";
foreach($xml->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={$marka['link']} class=link2>{$marka['name']}</a></li>";
}
}
echo "</ul><ul class=tops>";
foreach($xml->cat_b as $cat_b)
{
echo "<ol class=link1><font color=#ADADAB>{$cat_b['category']}</font></ol>";
foreach($cat_b->marka as $marka)
{
echo "<li align=left><a href={$marka['link']} class=link2>{$marka['name']}</a></li>";
}
}
echo "</ul><ul class=tops>";
значит в xml файле ссылка link=просто ac/index.php а в коде
"<li align=left><a href={$city}/{$marka['link']} class=link2>{$city}/{$marka['name']}</a></li>";
$city выбирается через select в файле inf0.tpl (tpl - это чтобы не спутаться), но а так как все tpl файлы идут через include то они получаются одно целое. |
пример кода с вложением
Вложений: 1
теперь намного короче. так пойдет? (нашел вложение). :write:
может кому интересно будет! |
Блин, что-то я невпопад ляпнул ) Как это удалить?
|
чтобы два скрипта работали на одной странице правильно можно сделать так:
function loadXMLDoc(file_1) и function loadXMLDoc(file_2) |
это что перепробовал:
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));
//selStation.id += el.textContent;
//selStation = div.getElementsByTagName(el.getAttribute('name'))
//selStation.div.id = el.textContent;
//input.value = el.textContent;
//$('#station2')=el.textContent;
//selStation.add($('#station2').el.textContent; )
selStation.add += el.textContent
})
но не выдает. |
| Часовой пояс GMT +3, время: 05:18. |