Показать сообщение отдельно
  #1 (permalink)  
Старый 14.01.2012, 16:45
Аспирант
Отправить личное сообщение для phenix79 Посмотреть профиль Найти все сообщения от phenix79
 
Регистрация: 19.12.2011
Сообщений: 40

Не могу отправить данные с помощью XMLHttpRequest
Никак не могу отправить данные на обработчик PHP с javasqript кода.

Имею HTML файл с формой в форме есть кнопка, и блок ДИВ отдельно, в ДИВе должно появляться сообщение полученое от обработчика check.php и текст который находится по умолчанию в ДИВе заменяется на тот который получаем от сервера.
Вот файл HTML:
<form> <input name="button" type="button" value="Отправить"  onclick = "getData('check.php', 'targetDiv') ">
    </form><br>
   <div id="targetDiv"> <p>Полученое от сервера сообщение появится ЗДЕСЬ!!!</p></div>


При нажатии на кнопку вызывается функция getData() из javascript..
javascript вынесен в отдельный файл
Вот код javascript:
var XMLHttpRequestObject = false;//Создаем переменную
var b=5;
//Для кроссбраузерности и для старых браузеров создаем конструкцию
      if (window.XMLHttpRequest) {//Для современных браузеров (если браузер поддерживает XMLHttpRequest объект)
        XMLHttpRequestObject = new XMLHttpRequest();//то создаем экземпляр объекта с именем XMLHttpRequestObject
      } else if (window.ActiveXObject) {//Для старых браузером создающих СОМ объект
        XMLHttpRequestObject = new 
          ActiveXObject("Microsoft.XMLHTTP");
      }

      function getData(dataSource, divID) //Предаем в качестве параметра функции источник данных в нашем случае файл data.txt и ID нашего <div> в который будет записываться информация из файла check.php
      { 
        if(XMLHttpRequestObject) {
          var obj = document.getElementById(divID); //Присваиваем переменной obj имя объекта ДИВ
          XMLHttpRequestObject.open("POST", dataSource,true); //Открываем запрос, где POST это метод передачи информации, можно применять другие методы например POST, PUT, HEAD,или PROPFIND и dataSource это адрес URL сервера с данными в нашем случае просто файл data.txt

          XMLHttpRequestObject.onreadystatechange = function() //Присваиваем свойству "onreadystatechange" функцию которая будет //выполняться при смене состояния объекта. "onreadystatechange" - это Обработчик события, которое происходит при каждой смене состояния объекта. Имя должно быть записано в нижнем регистре.
          { 
            if (XMLHttpRequestObject.readyState == 4 && //Текущее состояние объекта (0 — не инициализирован, 1 — открыт, 2 — отправка данных, 3 — получение данных и 4 — данные загружены)
              
			  XMLHttpRequestObject.status == 200) { //	HTTP-статус в виде числа (404 — «Not Found», 200 — «OK» и т. д.)
                obj.innerHTML = XMLHttpRequestObject.responseText; 
            } 
          } 

         XMLHttpRequestObject.send(b); //Отправляет запрос и получает данные 
        }
      }


Ну и собственно обработчик "check.php" который по сути должен получать методом POST в асинхронном режиме данные и вернуть что то назад, а вернуть я хочу значение той же переменной что и получаю то есть цифра 5 должна по сути высветиться , но я никак не могу этого сделать(((
<?php 
$b=$_POST['b'];
echo $b;

?>


Дело в том что все работает если отправляешь с "check.php" какие либо данные, а вот принимать от не хочет...
На 99 % уверен что делаю неправильно ajax запрос в в файле с javascript, подскажите в чем может быть причина?
Спасибо заранее!!!

Последний раз редактировалось phenix79, 14.01.2012 в 17:09.
Ответить с цитированием