Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Онлайн проверка (https://javascript.ru/forum/events/13353-onlajjn-proverka.html)

polecat1979 27.11.2010 20:26

Онлайн проверка
 
Доброе всем. Помогите решить такую задачку.
Существует сервис онлайн проверки полисов. В упрощенном виде на этот сервис отсылается XML файл определенной структуры.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
 <form name="frm" enctype="multipart/form-data" action="<<URL-адрес сервиса>>" method="post">
 <input name="uplTheFile" type="file" />
 <input type="submit" name="btnUploadTheFile" value="Upload" />
 </form>
</body>
</html>

Сам файл примера:
<?xml version="1.0" encoding="utf-8" ?> 
<service name="chkPol" uid="Имя пользователя" pwd="Пароль" xmlns="http://site.kemoms.ru/xsd/Service.xsd">
<req pwd="111" date="2010-09-20">
<pers fn="ййй" ln="ццц" mn="" birth="1989-07-22" /> 
<pasp ser="3201" num="435677" /> 
<polis num="43080084451" /> 
</req>
</service>

Ответ от сервиса приходит в виде странички (https://ip адрес/service/default.aspx):
<?xml version="1.0" encoding="utf-8" ?> 
<service name="chkPol" uid="Имя пользователя" pwd="Пароль" xmlns="http://site.kemoms.ru/xsd/Service.xsd">
<req pwd="111" date="2010-09-20">
<pers fn="ййй" ln="ццц" mn="" birth="1989-07-22" /> 
<pasp ser="3201" num="435677" /> 
<polis num="43080084451" /> 
</req>
<answ id="82">
<pers fn="ЙЙЙ" ln="ЦЦЦ" mn="УУУ" birth="1989-07-22" sex="М" region="42" ate="18" /> 
<polis num="43020034800" date="2005-10-15" ate="5" /> 
<med ate="5" lpu="161" date="2009-01-23" /> 
<work status="1" dogovor="35_04632_05">что там</work> 
<smo id="43" /> 
</answ>
</service>


Выбирать, загружать файл для пользователя не удобно. Хочу сделать все это прозрачно.
Примерно так:
1. Открываю новое окно с набором полей на форме
2. Пользователь вводит в некоторые из них данные, нажимает кнопку "проверить"
3. На лету формируется XML файл и отправляется на сервис проверки. Как его отправить методом POST?
4. По идее ответ должен разбираться и данные из него должны заполнять остальные поля. Но как это делать даже не представляю.

Спасибо за любую помощь.

ksa 27.11.2010 22:19

Цитата:

Сообщение от polecat1979
На лету формируется XML файл

Где формируется?

dmitriymar 27.11.2010 22:49

Зачем тебе формирующийся xml файл? сформируй строку раздели данные каким либо символом(чтобы мог их разделить на сервере) и отправь на сервер. да и ответ у тебя с сервера либо да либо нет.зачем ещё с xml заморачиваться

polecat1979 28.11.2010 04:21

то ksa
На страничке пользователя. По типу
var fso, tf;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  tf = fso.CreateTextFile("c:\\test.xml", true);
  tf.WriteLine("Testing 1, 2, 3.") ;
  tf.Close();


to dmitriymar
сервис на который необходимо отправлять запрос, принимает только файл xml и ответ возвращает исключительно такой, который я указал в начальном сообщении. В этом то вся проблема.

ksa 28.11.2010 12:08

Цитата:

Сообщение от polecat1979
На страничке пользователя

Это не "страничка"... Это файл на диске у пользователя...

polecat1979 28.11.2010 12:15

Я так понимаю, это тот же пользователь что и на www.sql.ru.
Дублирую для окружающих.
Поясню.
Пользователь открывает страницу с полями ввода; из того, что он введет в некоторые поля формируется xml файл на диске, который прозрачно для пользователя, без перезагрузки страницы, отправляется на сервис проверки этого файла. Вернувшийся ответ, необходимо разобрать и поместить в ту же страницу пользователя.
Может я не понимаю чего то, и все это реализуется намного проще. Просьба помочь.

ksa 28.11.2010 12:35

Цитата:

Сообщение от polecat1979
формируется xml файл на диске

Это возможно сработает в ИЕ, но не более того... Клиентские скрипты не имеют возможность что-то делать с дисками клиентов...

polecat1979 28.11.2010 13:25

Хорошо а если так.
Открываю дочернее окно, с данными для отправки. Пользователь нажимает кнопку Проверить. Данные уходят на мой веб сервер. По средствам php формирую xml файл и отправляю его дальше в инет.
Вопрос как мне в этом случае получить и обработать ответ от сервера из инета? Если это получится, то останется поместить полученные данные в открытую форму пользователя.

ksa 28.11.2010 13:46

Цитата:

Сообщение от polecat1979
обработать ответ от сервера из инета?

Вот это я что-то не понял...

Вообще (для нашего СУБД) если скрипт "приёмник" настроен именно на чтение именно файла из элемента

<input type='file' />


никакой другой способ передачи он "не поймёт"...
Может другие серверные скрипты работают как-то более универсально... Я не в курсе.

Т.о. файл, даже если и создаётся на сервере, должен попасть к клиенту на диск. Потом "прописаться" в инпут и после этого отправиться по своему адресу...

Я пока не встречал примеров как сервер может разсылать файлы посредством хтмл-форм...:no:

polecat1979 28.11.2010 13:59

Не, тут конечно php будет формировать и отправлять post запрос на сервер. хтмл форма уже в этом участвовать не будет. Что то типа http://www.spravkaweb.ru/php/sovet/putfile

Пока попробую реализовать первую часть.


Часовой пояс GMT +3, время: 16:39.