Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > AJAX неработает IE6


Автор: DE20 12.4.2009, 21:25
Осваиваю AJAX, Ситуация такая:
-  Была форма, отправляет данные обрабатываются возвращаются. Работала в Opere, FireFox, IE6
-  Щас отдельно модифицирую форму, все вроде тоже, в Opere, FireFox работает, --- НО в IE6 НЕТ

Немогу разобраться в чем дело, помогите пожалуйста.
-- КОды такие:
1) Файл index.php - С формой отправки
Код

<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"/>
<script language="JavaScript" type="text/JavaScript" src="ajax.js"></script>
</head><body>
<form name="form" id="form" method="post" action="javascript:get(document.getElementById('form'));" >
<input id="name" name="name" type="text" size="50" maxlength="50" /><br/>
<input id="Submit" name="Submit" type="submit"  value="Отправить"/><br/>
<p>Вывод:<span id="5500"></span>
</form>
</body></html>

2)  Файл ajax.js
Код

var http_request = false;
 function makePOSTRequest(url, parameters) {
      http_request = false;
      if (window.XMLHttpRequest) { // Mozilla, Safari
         http_request = new XMLHttpRequest();
         if (http_request.overrideMimeType) {
    http_request.overrideMimeType('text/html');
         }
      } else if (window.ActiveXObject) { // IE
         try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP"); // для IE6
         } catch (e) {
            try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP"); // для всех IE
            } catch (e) {}
         }
      }
      if (!http_request) {
         alert('Cannot create XMLHTTP instance');
         return false;
      }
      
      http_request.onreadystatechange = alertContents; 
 http_request.open('POST', url, true);
      http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=windows-1251");
      http_request.setRequestHeader("Content-length", parameters.length);
      http_request.setRequestHeader("Connection", "close");
      http_request.send(parameters); 
   }

   function alertContents() {
if (http_request.readyState == 4) {
if (http_request.status==200) {
result=http_request.responseText;
document.getElementById('5500').innerHTML = result;
}else 
{alert("There was a problem with the request");
}
}
}
   
function get(obj) {
       var poststr =  "name=" + encodeURI( document.getElementById("name").value ) +
"&Submit=" + encodeURI( document.getElementById("Submit").value );
makePOSTRequest('post.php', poststr);
   }

3)  Файл post.php 
Код

<?php
if(isset($_REQUEST['Submit']))
{    
$date = date("H:i:s");
$name  = iconv('UTF-8', 'WINDOWS-1251', $_REQUEST['name']); // преобразуем кодировку
$name = strip_tags($name);
$name = htmlspecialchars($name);
$name = substr($name,0,50);
echo '<p>Ваш запрос отправлен: '.$name.' - '.$date;
} 
?>


Автор: DE20 12.4.2009, 23:46
В IE НЕ возвращает(не выводит) данные в <span id="5500"></span>

Автор: DE20 13.4.2009, 21:45
!a-хаха
Оказалось нельзя ставить в резметке тег параграфа
<p>Вывод:

Без него всё работает  smile 


Тема решена. DE20 +1. <p>Вывод: факенговый параграф

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)