powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Формирование XML из JS и отправка его на сервер
21 сообщений из 21, страница 1 из 1
Формирование XML из JS и отправка его на сервер
    #35240061
sapounov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, коллеги.
Потребовалось решить такую задачу.
(Использую библиотеку XAJAX.)
На странице имеется некоторое количество объектов (формы, инпуты, селекты, дивы и.т.д.) Необходимо передать на сервер (посредством вызова функции XAJAX) все объекты со всеми аттрибутами и значениями. Количество объектов нам неизвестно, т.к. может изменяться в процессе работы пользователя со страницой , т.к. может быть два инпута, а может быть 10.


Так, как неизвестно количество элементов, в следовательно, неизвестно количество параметров, которые мы будем передавать функции, вижу для себя такой путь решения:

Обходя в цикле все элементы на странице (либо в заданном контейнере), создаем DOM-элементы XML с такими же аттрибутами и значениями, затем XML передаем на сервер. А PHP уже пишет этот XML в базу.


Вопрос в том, как это передать ?

Кто работал с XAJAX - подскажите. Функция на сервере не воспринимает в качестве параметра этот XML- объект. Может, что-то типа serialize в клиенте делать ?


Спасибо
...
Рейтинг: 0 / 0
Формирование XML из JS и отправка его на сервер
    #35240239
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проще так:
1. Берём innerHTML кадого нибудь эл-та, содержащего инпуты.
2. Заталкиваем его в хидден какой-нибудь формы.
3. Сабмитим эту форму.
4. В пхп парсим xml обычным образом (xhtml - тот же xml).
...
Рейтинг: 0 / 0
Формирование XML из JS и отправка его на сервер
    #35240701
sapounov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я бы так и сделал, если бы в innerHTML содержались также значения, введенные пользователем в поля формы :(
Так , увы, не получится
...
Рейтинг: 0 / 0
Формирование XML из JS и отправка его на сервер
    #35240794
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sapounovЯ бы так и сделал, если бы в innerHTML содержались также значения, введенные пользователем в поля формы :(
Так , увы, не получится
Поверь, они там содержатся! Выведи алертом в конец-то концов.
...
Рейтинг: 0 / 0
Формирование XML из JS и отправка его на сервер
    #35240905
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я пролистал Вики по XAjax и то что Вы хотите сделать - там уже делается на автомате

http://xajaxproject.org/wiki/Documentation:xajax_uncompressed.js

getFormValues()
* The first argument is the id of the form
* The second argument (optional) can be set to true if you want to submit disabled elements
* The third argument (optional) allows you to specify a string prefix that a form element

name must contain if you want that element to be submitted

objectToXML (obj)
Generates an XML message that xajax can understand from a javascript object
...
Рейтинг: 0 / 0
Формирование XML из JS и отправка его на сервер
    #35241128
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Апапаси, чего ты пишешь. Сам-то читал? Прекрати эту фигню, а то из нашего форума все разбегутся.
...
Рейтинг: 0 / 0
Формирование XML из JS и отправка его на сервер
    #35241154
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос на засыпку: зачем передавать xml на сервер, когда можно передать параметры? Если очень принципиально, то почему не создать xml ручками? - Вроде проблем особых быть не должно - запихиваем все данные в стринг, который несет xml, а на сервере каким-нибудь xml-парсером легко его парсим и получаем все параметры.
Насколько понимаю, вопрос не так прост. Если он сложнее, то почему так мало вводных?
Если используется внешняя библиотека, то а) не верится, что она сама может автоматически создать xml, анализируя страницу/форму; б) если не так, то зачем усложнять, когда вопрос транспорта - второстенный?
...
Рейтинг: 0 / 0
Формирование XML из JS и отправка его на сервер
    #35241185
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruckзапихиваем все данные в стринг, который несет xml, а на сервере каким-нибудь xml-парсером легко его парсим и получаем все параметры
Ты предыдущие посты читаешь? А если цитируешь - ссылайся. Шутка. Таки почитай, чего вверху.
...
Рейтинг: 0 / 0
Формирование XML из JS и отправка его на сервер
    #35241276
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Совсем не понял, к чему это ты ... там ничего нет.
...
Рейтинг: 0 / 0
Формирование XML из JS и отправка его на сервер
    #35241306
Фотография illion
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это он об этом наверное: ShSergeПроще так:
1. Берём innerHTML кадого нибудь эл-та, содержащего инпуты.
2. Заталкиваем его в хидден какой-нибудь формы.
3. Сабмитим эту форму.
4. В пхп парсим xml обычным образом (xhtml - тот же xml).
вот только innerHTML не сохраняет введенные значения. Я конечно понимаю, что
ShSergeПоверь, они там содержатся! Выведи алертом в конец-то концов.
правда проверять нужно не только в ie, но хотя бы еще и файрфоксе с оперой.

Создать строку с xml - проще всего. Тем более что этот вариант в принципе схож с тем, что изначально определил для себя топикстартер.
...
Рейтинг: 0 / 0
Формирование XML из JS и отправка его на сервер
    #35241316
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeАпапаси, чего ты пишешь. Сам-то читал? Прекрати эту фигню, а то из нашего форума все разбегутся.

Серж. За кого Вы меня держите.
XAjax это библиотека, которая написана часть на JavaScript, часть на PHP.
Её основное назначение
1.1 Собирать инпуты форм
1.2 сериализовать объекты клиента
... и отправлять в сериализованном виде на сервер
2. Часть PHP я не смотрел, но я надеюсь, что она не генерирует случайные числа а разбирает как раз эти конкретные сериализованные зарпросы.

Если Вачто-то неясно - спрашивайте.
...
Рейтинг: 0 / 0
Формирование XML из JS и отправка его на сервер
    #35241318
apapacy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeПроще так:
1. Берём innerHTML кадого нибудь эл-та, содержащего инпуты.
2. Заталкиваем его в хидден какой-нибудь формы.
3. Сабмитим эту форму.
4. В пхп парсим xml обычным образом (xhtml - тот же xml).

Вы б написали лучше
- берем кувалду и разбиваем комп
...
Рейтинг: 0 / 0
Формирование XML из JS и отправка его на сервер
    #35241555
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
illionпроверять нужно не только в ie, но хотя бы еще и файрфоксе с оперой.
Проверил. Ну лохонулся. Извиняюсь. С кем не бывает?
В фирефоксе и в опере - не работает. Только в ИЕ.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<html>
<head>
<script>
</script>
</head>
<body>
<form>
<div id="abc">
<input type="text"></input>
</div>
<button onclick="alert(document.getElementById('abc').innerHTML); return false;">Нажми</button>
</form>
</body>
</html>
...
Рейтинг: 0 / 0
Формирование XML из JS и отправка его на сервер
    #35242505
sapounov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IDVsbruckВопрос на засыпку: зачем передавать xml на сервер, когда можно передать параметры?
Количество параметров неизвестно, т.к. неизвестно наполнение страницы . Если бы это была просто форма, то я использовал бы xajax getFormValues. Необходимо запихать также и другие элементы, дивы, и содержащиеся в них текстовые блоки и.т.п.
...
Рейтинг: 0 / 0
Формирование XML из JS и отправка его на сервер
    #35243842
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вобщем-то IDVsbruck вроде написал вопрос с ответом (в данном конкретном случае - правильный). Попробуй JQuery например - там чё-то с сериализацией инпутов есть.
А всё-таки нафига это нужно (по сабжу) - не понятно!
...
Рейтинг: 0 / 0
Формирование XML из JS и отправка его на сервер
    #35251124
ZeusTheTrueGod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
берём библиотеку, или сами пишем) , запихиваем все данные в JSON объект, обычно библиотека содержит такой вариант сериализации формы, передаём объект как параметр в POST , на сервере по JSON получаем нужный объект на пхп
...
Рейтинг: 0 / 0
Формирование XML из JS и отправка его на сервер
    #35252954
sapounov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShSergeА всё-таки нафига это нужно (по сабжу) - не понятно!.
На странице есть одна большая динамическая форма. Она формируется из нескольких шаблонов в ответ на вводимые пользователем данные . Количество элементов формы предугадать практически невозможно, т.к. в одном случае, элементов формы может быть 10, в другом случае, элментов формы может быть олее ста . Эту форму (не результат обработки, а именно саму форму) со всеми введенными данными требуется сохранить в БД.
Кажется, у меня получилось объяснить, зачем это нужно :)
...
Рейтинг: 0 / 0
Формирование XML из JS и отправка его на сервер
    #35253556
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не-а ...
Ты только сказал, что ты хочешь. А вот зачем такая ерунда в базе - нет ... :):)
...
Рейтинг: 0 / 0
Формирование XML из JS и отправка его на сервер
    #35253579
sapounov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IDVsbruckНе-а ...
Ты только сказал, что ты хочешь. А вот зачем такая ерунда в базе - нет ... :):)
Только лишь затем, чтобы восстановить оттуда всю эту нефиговую форму со всеми ее кастомными полями и значениями.
Поэтому и подумал про XML, ибо в нем проще всего хранить такие заморочки :)
...
Рейтинг: 0 / 0
Формирование XML из JS и отправка его на сервер
    #35254680
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может лучше пропарсить по амперсантам и энакам равенства реквест?
Лет пять тому назад у меня была аналогичная задача. Я её решил просто - сказал заказчику, что только в ИЕ будет работать - его удовлетворило.
...
Рейтинг: 0 / 0
Формирование XML из JS и отправка его на сервер
    #35254727
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот. Для себя писал :)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
function importNode(ASrcElem, ADstDoc, ADeep) {
  var res = null;
  switch (ASrcElem.nodeType) {
    case  1 :  // ELEMENT_NODE
      res = ADstDoc.createElement(ASrcElem.nodeName);
      var lAttr = ASrcElem.attributes;
      for (var i =  0 ; i < lAttr.length; i++)
        res.setAttribute(lAttr.item(i).name, lAttr.item(i).value);
      break;                  
    case  2 :  // ATTRIBUTE_NODE
      res = ADstDoc.createAttribute(ASrcElem.nodeName);
      res.value = ASrcElem.value;
      break;                  
    case  3 :  // TEXT_NODE                     
      res = ADstDoc.createTextNode(ASrcElem.data);
      break;                  
    case  4 :  // CDATA_SECTION_NODE            
      res = ADstDoc.createCDATASection(ASrcElem.nodeName);
      break;                  
    case  5 :  // ENTITY_REFERENCE_NODE         
      res = ADstDoc.createEntityReference(ASrcElem.nodeName);
      break;                  
    case  6 :  // ENTITY_NODE                   
      break;                  
    case  7 :  // PROCESSING_INSTRUCTION_NODE   
      res = ADstDoc.createProcessingInstruction(ASrcElem.target, ASrcElem.data);
      break;                  
    case  8 :  // COMMENT_NODE                  
      res = ADstDoc.createComment(ASrcElem.data);
      break;                  
    case  9 :  // DOCUMENT_NODE                 
      break;                  
    case  10 :  // DOCUMENT_TYPE_NODE            
      break;                  
    case  11 :  // DOCUMENT_FRAGMENT_NODE        
      res = ADstDoc.createDocumentFragment(ASrcElem.nodeName);
      break;                  
    case  12 :  // NOTATION_NODE                 
      break;                  
  }  // switch
  if (res && ADeep) {
    for (var i =  0 ; i < ASrcElem.childNodes.length; i++) {
      var childElem = importNode(ASrcElem.childNodes(i), ADstDoc, ADeep);
      if (childElem)
        res.appendChild(childElem);
    }
  }
  return res;
}


С уважением, Vasilisk
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Формирование XML из JS и отправка его на сервер
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]