Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> XmlhttpRequest, помогите пожалуйста 
V
    Опции темы
stre1ok
Дата 11.5.2006, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 11.5.2006

Репутация: нет
Всего: нет



Написал PHP скрипт с внутренней формой для обработки неких данных , и записи их в файл на сервере: код: 
Код


<html>
<head>
<title>My PHP7</title>
</head>
<body bgcolor="#ffffff" text="#000000" link="#cbda74" vlink="#808040" alink="f808040">
<?

$form = "
    <form action=\"laba7.php\" method=\"post\">
    <input type=\"hidden\" name=\"form1\" value=\"y\">

<b>Система для обработки</b><br>

Начальная точка маршрута:<br>

<input type=\"text\" name=\"name1\" size=\"70\" maxlength=\"70\" value=\"\"><br>

Конечная точка маршрута:<br>

<input type=\"text\" name=\"name2\" size=\"70\" maxlength=\"70\" value=\"\"><br>

Номер маршрута:<br>

<input type=\"text\" name=\"number\" size=\"70\" maxlength=\"70\" value=\"\"><br>

<br>
<input type=radio name=answer value=1 checked> Отправить на сервер (в файл)
<br>
<input type=radio name=answer value=2> Показать список всех маршрутов
<br>
<input type=radio name=answer value=3> Показать информацию по определенным маршрутам
<input type=\"text\" name=\"route\" size=\"20\" maxlength=\"20\" value=\"Начальная точка\"><br>
<br><br>
<input type=\"submit\" value=\"Обработать\">

</form>";
if($form1!="y")
    {print "$form";}

    if($answer==1 && $name1!="" && $name2!="" && $number!="")
{print "Sending to server!!!";
    if (file_exists("base.txt")==1)
    {    
    $file=fopen("base.txt","a");
    fputs($file, $name1);
    fputs($file, "\n");
    fputs($file, $name2);
    fputs($file, "\n");
    fputs($file, $number);
    fputs($file, "\n");
    fclose($file);

print "$form";
    } else { 
    
    $file=fopen("base.txt","w");
    fputs($file, $name1);
    fputs($file, "\n");
    fputs($file, $name2);
    fputs($file, "\n");
    fputs($file, $number);
    fputs($file, "\n");
    fclose($file);

print "$form";
    }


   
if($answer==2)
    {print "Information on routes:<br/>\n";    

$lines = file('base.txt');

foreach ($lines as $line) {
   echo   "<b/>$line</b/> <br/>\n";
}

}
if($answer==3)
{
print "Information on routes with <b/>$route</b/> as the beginning:<br/>";
 
$lines = file('base.txt');
$size=count($lines);

for($i=0;$i<$size;$i++)
{
$lines[$i]=trim($lines[$i]);
}

for($i=0;$i<=$size-3;$i++)
{        
        if($lines[$i]==$route)
        {echo "<b/>$lines[$i]</b/> <br/>";
        $i++;
             echo "<b/>$lines[$i]</b/> <br/>";
        $i++;
         echo "<b/>$lines[$i]</b/> <br/>";
        }
else {
$i++;
$i++;
}

             
}    

}


?>

</body>

</html>




Вот к этой бойде нужно сделать клиент - в котором будет форма , обработчик формы на JavaScript, и который будет отправлять данные на сервер через XMLHTTPRequest .
Люди подскажите как правильно формировать запрос XML и туда запихнуть данные из формы , для отправки пчп срипту... 
 
PM MAIL   Вверх
12345c
Дата 11.5.2006, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



http://mysitez.km.ua/Programming/?jshttpsend - "Отправка и обработка ответов http-запросов с помощью JavaScript (использование объекта XMLHttpRequest). "

Есть особенность, что если при отладке запускать из IE не через сервер, то код ответа будет 0, а не 200. Соответственно, чтобы заработало на файлах, надо вписать такое условие. Реализовано здесь: http://js2.ru/example/JsPrimeryCode-40.htm 

Это сообщение отредактировал(а) 12345c - 3.3.2008, 15:01


--------------------
Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go
PM WWW   Вверх
stre1ok
Дата 15.5.2006, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 11.5.2006

Репутация: нет
Всего: нет



Написал реквест - но появилась ошибка - при обработке ответа пишет что "response is null or an object":
обработчик на яве :
Код

function processReqChange() 
{
    if (req.readyState == 4) {
        if (req.status == 200) {

             response = req.responseXML.documentElement;
          method = response.getElementsByTagName('method')[0].firstChild.data;
           result = response.getElementsByTagName('result')[0].firstChild.data;
                //Пришел ответ на вызов SendData();
                if (method == "SendData") {
                            if (result == 1) {            document.form1.name1.value= "";
    document.form1.name1.value = "";
    document.form1.number.value = "";
    document.form1.route.value = "Начальная точка";
            alert("Success!");
            } else alert("error!");
                }

        } 
    }
}


в пчп скрипте после кода пчп вписал посыл ответа таким образом:
Код

<?xml version="1.0" encoding="UTF-8" 
  standalone="yes"?>
<response>
  <method>SendData</method>
  <result>1</result>
</response>
?>


Замена статуса с 200 на 0 в ие - не помогает , в чем может быть проблемма?  smile  smile  
PM MAIL   Вверх
Illuminaty
Дата 15.5.2006, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


/*Антон Захаров*/
***


Профиль
Группа: Комодератор
Сообщений: 1238
Регистрация: 19.3.2005
Где: Россия, Казань

Репутация: 4
Всего: 56



Ты "Content-type" какой отпраляешь из скрипта? 
PM MAIL ICQ   Вверх
stre1ok
Дата 15.5.2006, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 11.5.2006

Репутация: нет
Всего: нет



    <meta http-equiv="content-type" content="text/html; charset=windows-1251">

а контейнер <script type="text/javascript" language="JavaScript">
Если Вы это имели ввиду   

Это сообщение отредактировал(а) stre1ok - 15.5.2006, 12:22
PM MAIL   Вверх
Illuminaty
Дата 15.5.2006, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


/*Антон Захаров*/
***


Профиль
Группа: Комодератор
Сообщений: 1238
Регистрация: 19.3.2005
Где: Россия, Казань

Репутация: 4
Всего: 56



Отправь "text/xml",  иначе req.responseXML у тебя будет равно null 
PM MAIL ICQ   Вверх
stre1ok
Дата 15.5.2006, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 11.5.2006

Репутация: нет
Всего: нет



Не помогло  smile . А Вы не могли бы привести пример вставки ответа на хмл запрос в пчп, ибо при обычном вызове сервера пишет ошибки. Быть может я в серверную часть не так вставил ответ. 
PM MAIL   Вверх
stre1ok
Дата 15.5.2006, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 11.5.2006

Репутация: нет
Всего: нет



Благодарю за помощь. Вопрос решен - другим методом =) . Ответ от сервера анализировал не XML DOM а с помощью :
XMLHTTPRequest.status 
XMLHTTPRequest.responseText   
PM MAIL   Вверх
12345c
Дата 15.5.2006, 17:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Да, это свойство практичнее. Хотя тоже неудобство, что теги фильтрует. 
PM WWW   Вверх
BuShaRt
Дата 29.4.2007, 00:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1391
Регистрация: 29.6.2006

Репутация: нет
Всего: 6



А вот у меня что то не работает 
http://ru.wikipedia.org/wiki/XMLHttpRequest
http://mysitez.km.ua/Programming/?jshttpsend

Пишет, что предполагаеться наличие объекта в 14 строке, т.е. 

Код

var req;

function loadXMLDoc(url) {
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.onreadystatechange = processReqChange;
        req.open("GET", url, true);
        req.send(null);
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = processReqChange;
            req.open("GET", url, true);
            req.send();  //ТУТ!
        }
    }
}


в чем может быть проблема?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0779 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.