L
Linel
Уважаемые программисты,
Помогите решить проблему. Недавно начал изучать AJAX. Решил соорудить скрипт, который асинхронно добавлял бы какие либо данные из формы в базу данных (MySQL).
Алгоритм программы следующий:
1) Я заполняю форму
2) При нажатии на кнопку активируется функция, которая асинхронно запрашивает PHP файл и передает ему данные из формы GET запросом.
3) PHP файл добавляет данные в Базу Данных.
Собственно, отрывки из кода.
Тут я создаю xmlHttp, с которым я буду работать дальше.
А тут функция, которая считывает данные из формы и делает запрос PHP файлу, передавая ему параметры через GET запрос.
Даже не знаю как объяснить в чем проблема. Вообщем, если открыть страничку с формой (ну и скриптом) и не обращаться к скрипту какое то время (скажем, минут 5), то при попытке добавления информации в БД ничего не произойдет. Если незамедлительно повторить попытку, то все заработает. Суть проблемы заключается в том, что функция работает только в том случае, если к ней недавно обращались. Иначе, по истечению какого то времени она как будто "засыпает". Очевидно, что проблема таится где то на стороне клиента, так как GET запрос я пробовал эмулировать и все работает отлично.
Я только начал изучать AJAX и не понимаю в чем может быть ошибка. Помогите разобраться: я делаю что то не так? Или проблема в чем то другом? В какую сторону копать?
Помогите решить проблему. Недавно начал изучать AJAX. Решил соорудить скрипт, который асинхронно добавлял бы какие либо данные из формы в базу данных (MySQL).
Алгоритм программы следующий:
1) Я заполняю форму
2) При нажатии на кнопку активируется функция, которая асинхронно запрашивает PHP файл и передает ему данные из формы GET запросом.
3) PHP файл добавляет данные в Базу Данных.
Собственно, отрывки из кода.
Тут я создаю xmlHttp, с которым я буду работать дальше.
Код:
xmlHttp = createXMLHTTP();
function createXMLHTTP()
{
var xmlHttp;
try
{
xmlHttp = new XMLHttpRequest();
}
catch (e)
{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
if (xmlHttp)
return xmlHttp;
}
А тут функция, которая считывает данные из формы и делает запрос PHP файлу, передавая ему параметры через GET запрос.
Код:
function addBook()
{
if (xmlHttp)
{
bookTitle = document.getElementById("bTitle").value;
bookAuthor = document.getElementById("bAuthor").value;
bookPages = document.getElementById("bPages").value;
bookPrice = document.getElementById("bPrice").value;
xmlHttp.open("GET", "addBook.php?title="+bookTitle+"&author="+bookAuthor+"&pages="+bookPages+"&price="+bookPrice, true);
xmlHttp.send(null);
document.getElementById("bTitle").value="";
document.getElementById("bAuthor").value="";
document.getElementById("bPages").value="";
document.getElementById("bPrice").value="";
document.getElementById("answer").innerHTML = "<font color='green'>Сервер успешно выполнил операцию</font>";
}
}
Даже не знаю как объяснить в чем проблема. Вообщем, если открыть страничку с формой (ну и скриптом) и не обращаться к скрипту какое то время (скажем, минут 5), то при попытке добавления информации в БД ничего не произойдет. Если незамедлительно повторить попытку, то все заработает. Суть проблемы заключается в том, что функция работает только в том случае, если к ней недавно обращались. Иначе, по истечению какого то времени она как будто "засыпает". Очевидно, что проблема таится где то на стороне клиента, так как GET запрос я пробовал эмулировать и все работает отлично.
Я только начал изучать AJAX и не понимаю в чем может быть ошибка. Помогите разобраться: я делаю что то не так? Или проблема в чем то другом? В какую сторону копать?