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


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

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


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

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


Спасибо
...
Рейтинг: 0 / 0
07.04.2008, 16:08
    #35240239
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формирование XML из JS и отправка его на сервер
Проще так:
1. Берём innerHTML кадого нибудь эл-та, содержащего инпуты.
2. Заталкиваем его в хидден какой-нибудь формы.
3. Сабмитим эту форму.
4. В пхп парсим xml обычным образом (xhtml - тот же xml).
...
Рейтинг: 0 / 0
07.04.2008, 18:01
    #35240701
sapounov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формирование XML из JS и отправка его на сервер
Я бы так и сделал, если бы в innerHTML содержались также значения, введенные пользователем в поля формы :(
Так , увы, не получится
...
Рейтинг: 0 / 0
07.04.2008, 18:24
    #35240794
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формирование XML из JS и отправка его на сервер
sapounovЯ бы так и сделал, если бы в innerHTML содержались также значения, введенные пользователем в поля формы :(
Так , увы, не получится
Поверь, они там содержатся! Выведи алертом в конец-то концов.
...
Рейтинг: 0 / 0
07.04.2008, 19:14
    #35240905
apapacy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формирование XML из JS и отправка его на сервер
Я пролистал Вики по 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
07.04.2008, 22:30
    #35241128
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формирование XML из JS и отправка его на сервер
Апапаси, чего ты пишешь. Сам-то читал? Прекрати эту фигню, а то из нашего форума все разбегутся.
...
Рейтинг: 0 / 0
07.04.2008, 23:03
    #35241154
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формирование XML из JS и отправка его на сервер
Вопрос на засыпку: зачем передавать xml на сервер, когда можно передать параметры? Если очень принципиально, то почему не создать xml ручками? - Вроде проблем особых быть не должно - запихиваем все данные в стринг, который несет xml, а на сервере каким-нибудь xml-парсером легко его парсим и получаем все параметры.
Насколько понимаю, вопрос не так прост. Если он сложнее, то почему так мало вводных?
Если используется внешняя библиотека, то а) не верится, что она сама может автоматически создать xml, анализируя страницу/форму; б) если не так, то зачем усложнять, когда вопрос транспорта - второстенный?
...
Рейтинг: 0 / 0
07.04.2008, 23:32
    #35241185
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формирование XML из JS и отправка его на сервер
IDVsbruckзапихиваем все данные в стринг, который несет xml, а на сервере каким-нибудь xml-парсером легко его парсим и получаем все параметры
Ты предыдущие посты читаешь? А если цитируешь - ссылайся. Шутка. Таки почитай, чего вверху.
...
Рейтинг: 0 / 0
08.04.2008, 01:13
    #35241276
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формирование XML из JS и отправка его на сервер
Совсем не понял, к чему это ты ... там ничего нет.
...
Рейтинг: 0 / 0
08.04.2008, 02:33
    #35241306
illion
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формирование XML из JS и отправка его на сервер
это он об этом наверное: ShSergeПроще так:
1. Берём innerHTML кадого нибудь эл-та, содержащего инпуты.
2. Заталкиваем его в хидден какой-нибудь формы.
3. Сабмитим эту форму.
4. В пхп парсим xml обычным образом (xhtml - тот же xml).
вот только innerHTML не сохраняет введенные значения. Я конечно понимаю, что
ShSergeПоверь, они там содержатся! Выведи алертом в конец-то концов.
правда проверять нужно не только в ie, но хотя бы еще и файрфоксе с оперой.

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

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

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

Вы б написали лучше
- берем кувалду и разбиваем комп
...
Рейтинг: 0 / 0
08.04.2008, 09:51
    #35241555
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формирование XML из JS и отправка его на сервер
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
08.04.2008, 13:59
    #35242505
sapounov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формирование XML из JS и отправка его на сервер
IDVsbruckВопрос на засыпку: зачем передавать xml на сервер, когда можно передать параметры?
Количество параметров неизвестно, т.к. неизвестно наполнение страницы . Если бы это была просто форма, то я использовал бы xajax getFormValues. Необходимо запихать также и другие элементы, дивы, и содержащиеся в них текстовые блоки и.т.п.
...
Рейтинг: 0 / 0
08.04.2008, 20:41
    #35243842
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формирование XML из JS и отправка его на сервер
Вобщем-то IDVsbruck вроде написал вопрос с ответом (в данном конкретном случае - правильный). Попробуй JQuery например - там чё-то с сериализацией инпутов есть.
А всё-таки нафига это нужно (по сабжу) - не понятно!
...
Рейтинг: 0 / 0
12.04.2008, 00:31
    #35251124
ZeusTheTrueGod
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формирование XML из JS и отправка его на сервер
берём библиотеку, или сами пишем) , запихиваем все данные в JSON объект, обычно библиотека содержит такой вариант сериализации формы, передаём объект как параметр в POST , на сервере по JSON получаем нужный объект на пхп
...
Рейтинг: 0 / 0
14.04.2008, 11:37
    #35252954
sapounov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формирование XML из JS и отправка его на сервер
ShSergeА всё-таки нафига это нужно (по сабжу) - не понятно!.
На странице есть одна большая динамическая форма. Она формируется из нескольких шаблонов в ответ на вводимые пользователем данные . Количество элементов формы предугадать практически невозможно, т.к. в одном случае, элементов формы может быть 10, в другом случае, элментов формы может быть олее ста . Эту форму (не результат обработки, а именно саму форму) со всеми введенными данными требуется сохранить в БД.
Кажется, у меня получилось объяснить, зачем это нужно :)
...
Рейтинг: 0 / 0
14.04.2008, 14:26
    #35253556
IDVsbruck
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формирование XML из JS и отправка его на сервер
Не-а ...
Ты только сказал, что ты хочешь. А вот зачем такая ерунда в базе - нет ... :):)
...
Рейтинг: 0 / 0
14.04.2008, 14:31
    #35253579
sapounov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формирование XML из JS и отправка его на сервер
IDVsbruckНе-а ...
Ты только сказал, что ты хочешь. А вот зачем такая ерунда в базе - нет ... :):)
Только лишь затем, чтобы восстановить оттуда всю эту нефиговую форму со всеми ее кастомными полями и значениями.
Поэтому и подумал про XML, ибо в нем проще всего хранить такие заморочки :)
...
Рейтинг: 0 / 0
14.04.2008, 22:14
    #35254680
ShSerge
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формирование XML из JS и отправка его на сервер
Может лучше пропарсить по амперсантам и энакам равенства реквест?
Лет пять тому назад у меня была аналогичная задача. Я её решил просто - сказал заказчику, что только в ИЕ будет работать - его удовлетворило.
...
Рейтинг: 0 / 0
14.04.2008, 22:59
    #35254727
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Формирование XML из JS и отправка его на сервер
Вот. Для себя писал :)
Код: 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
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Формирование XML из JS и отправка его на сервер / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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