Никак не могу отправить данные на обработчик 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, подскажите в чем может быть причина?
Спасибо заранее!!!