|
17.06.2014, 09:44
|
Новичок на форуме
|
|
Регистрация: 17.06.2014
Сообщений: 6
|
|
XML и JavaScript - вопрос новичка
Добрый день.
Сильно не пинайте, если что не так. В HTML и JavaScript полный ноль, только познакомился.
Постараюсь корректно задать вопрос. Суть дела в следующем. В наследство отделу досталась программа, разработчик которой уволился. Потребовалось изменить выходную форму HTML, которая формируется на наборе XML данных сформированных программно.
...
<td class="tHead1" nowrap align="right">Маркировка на упаковке:</td>
<td class="tHead2" width="20%"><span datafld="MarkPack"> </span></td>
...
Необходимо при формировании HTML странички связанные данные из поля "MarkPack" вывести в нужном мне формате, а не в том как они хранятся в динамически сформированном XML файле. Такое возможно сделать с помощью JavaScripta ?
|
|
17.06.2014, 11:24
|
Профессор
|
|
Регистрация: 15.03.2014
Сообщений: 561
|
|
Сообщение от KLD
|
Необходимо при формировании HTML странички связанные данные из поля "MarkPack" вывести в нужном мне формате, а не в том как они хранятся в динамически сформированном XML файле. Такое возможно сделать с помощью JavaScripta ?
|
Не понял, что за связанные данные и как оно там с XML у вас взаимодействует, но JS может манипулировать DOM (HTML) как угодно.
|
|
17.06.2014, 11:37
|
Новичок на форуме
|
|
Регистрация: 17.06.2014
Сообщений: 6
|
|
Жаль не поняли меня.
Попробую еще раз. Возможно ли вместо записи
...
<td class="tHead1" nowrap align="right">Маркировка на упаковке:</td>
<td class="tHead2" width="20%"><span datafld="MarkPack"> </span></td>
...
использовать что-то похожее на следующее, если да, то подскажите как правильно это можно организовать, пожалуйста.
<xml id="XMLDATA" ondatasetcomplete="InitNote();">
</xml>
..
<SCRIPT LANGUAGE=" JavaScript">
function StrFields()
{
ResultDiv.innerHTML=XMLDATA.RecordSet.Fields("Mark Pack").value;
// на самом деле весь сыр бор из-за этого, здесь предполагается необходимая обработка значения поля "MarkPack" и вывод полученного результата в HTML документ.
}
...
<td class="tHead1" nowrap align="right">Маркировка на упаковке:</td>
<td class="tHead2" width="20%"><div id="ResultDiv"></div></td>
...
пробовал что-то подобное, не получается... не знаю к какому и как обработчику события нужно преобразование привязать.
P.S. Очень надеюсь, что сейчас хоть немного сумел объяснить что необходимо и в чем проблема.
|
|
17.06.2014, 12:07
|
Профессор
|
|
Регистрация: 15.03.2014
Сообщений: 561
|
|
Сообщение от KLD
|
P.S. Очень надеюсь, что сейчас хоть немного сумел объяснить что необходимо и в чем проблема.
|
Увы, лично я так ничего и не понял. Какие-то разрозненные куски XML, HTML и JS. Надо в результирующем HTML формат каких-то данных поменять или что? Речь вообще о браузерном JS или нет?
|
|
17.06.2014, 13:30
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,589
|
|
Покажите кусок который "формирует траницу", покажите результат формирования, покажите как этот результат должен выглядеть по новому.
Никто не знает что у вас там где и как формируется. Способов описанных действий огромное множество.
__________________
29375, 35
|
|
25.06.2014, 05:46
|
Новичок на форуме
|
|
Регистрация: 17.06.2014
Сообщений: 6
|
|
Попробуем по другому.
Подскажите почему в первом случае срабатывает динамическая корректировка значения тэга DIV, а во втором случае нет ? И как добиться чтобы и во втором случае динамически изменять содержимое тэга с id="blockText1"?
Первый пример:
<html>
<head>
<title></title>
</head>
<body>
<div id="blockText1">Тут будет первый текст</div>
<div id="blockText2">Тут будет второй текст</div>
<script type="text/javascript">
var tDiv = document.getElementById("blockText1");
var tStr = tDiv.innerText;
document.getElementById("blockText1").innerHTML="T est - "+tStr.substr(17,5)+tStr.substr(4,5)+tStr.substr(1 0,6)+tStr.substr(0,3);
document.getElementById("blockText2").innerHTML="T est - "+tDiv.getAttribute('innerHTML');
</script>
</body>
</html>
Второй пример:
<HTML>
<HEAD>
<TITLE>Отображение иерархической структуры записей вложенными таблицами</TITLE>
</HEAD>
<BODY>
<xml id="dsoЗаказчик" src="333.xml"></xml>
<td>
<table datasrc="#dsoЗаказчик" datafld="Компания">
<tr>
<td><div id="blockText1" datafld="факс"></div></td>
</tr>
<tr>
<td><div id="blockText2">Вторая строчка</div></td>
</tr>
<script type="text/javascript">
var tDiv=document.getElementById("blockText1");
var tmptext=tDiv.innerText;
document.getElementById("blockText1").innerHTML="T est - "+tmptext.substr(0,3);
document.getElementById("blockText2").innerHTML="T est - "+tDiv.getAttribute('innerHTML');
</script>
</table>
</td>
</BODY>
</HTML>
где 333.xml к примеру
<?xml version="1.0" encoding="windows-1251" ?>
<Заказчики>
<Заказчик Фамилия="Иванов">
<Компания телефон="149-521" факс="149-522" >МКС</Компания>
</Заказчик>
<Заказчик Фамилия="Петров">
<Компания телефон="123-456" факс="123-455" >Спецвузавтоматика</Компания>
</Заказчик>
<Заказчик Фамилия="Бэндер">
<Компания телефон="отключен" факс="в залоге" >Рога и копыта</Компания>
</Заказчик>
</Заказчики>
|
|
25.06.2014, 14:23
|
Профессор
|
|
Регистрация: 15.03.2014
Сообщений: 561
|
|
Так попробуйте:
<HTML>
<HEAD>
<TITLE>Отображение иерархической структуры записей вложенными таблицами</TITLE>
</HEAD>
<BODY>
<xml id="dsoЗаказчик" src="333.xml"></xml>
<table datasrc="#dsoЗаказчик" datafld="Компания">
<tr>
<td><div id="blockText1" datafld="факс"></div></td><td>
</tr>
<tr>
<td><div id="blockText2">Вторая строчка</div></td>
</tr>
</table>
<script type="text/javascript">
window.onload = function() {
var tDiv = document.getElementById("blockText1");
var tmptext = tDiv.innerText;
document.getElementById("blockText1").innerHTML="Test - " + tmptext.substr(0,3);
document.getElementById("blockText2").innerHTML="Test - " + tDiv.innerHTML;
}
</script>
</BODY>
</HTML>
Последний раз редактировалось jsnb, 25.06.2014 в 14:28.
|
|
26.06.2014, 03:49
|
Новичок на форуме
|
|
Регистрация: 17.06.2014
Сообщений: 6
|
|
Спасибо !
|
|
26.06.2014, 04:21
|
Новичок на форуме
|
|
Регистрация: 17.06.2014
Сообщений: 6
|
|
Еще один вопрос.
А из html странички можно скриптом изменить в xml документе значение поля "факс" к примеру ?
|
|
26.06.2014, 07:20
|
|
Тлен
|
|
Регистрация: 02.01.2010
Сообщений: 6,589
|
|
var tmptext = tDiv.innerText || tDiv.textContent;
иначе в firefox работать не будет.
__________________
29375, 35
|
|
|
|