<?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, время: 18:31. |