php +javascript(ajax)

программирование php JavaScript AJAX XMLHttpRequest

не работает код.

function XmlHttp()
{
var xmlhttp;
try{xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");}
catch(e)
{
try {xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");}
catch (E) {xmlhttp = false;}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined')
{
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}

function page()
{
req = new XmlHttp();
vman1 = document.getElemenById("man1").value;
vman2 = document.getElemenById("man2").value;
vday = document.getElemenById("day").value;
vmonth = document.getElemenById("month").value;
vyear = document.getElemenById("year").value;
vcaptcha = document.getElemenById("captcha").value;
vuser_captcha = document.getElemenById("user_captcha").value;
vcreate = document.getElemenById("create").value;
var method="POST";
var url="/new.php";
parameters="man1="+vman1+"&man2="+vman2+"&day="+vday+"&month="+vmonth+"&year="+vyear+"&captcha="+vcaptcha+"&user_captcha="+vuser_captcha+"&create="+vcreate;
req.open(method, url, true);
req.setRequestHeader("Content-Type", "multipart/form-data");
req.send(parameters);
req.onreadystatechange = show();
}

function show()
{
if (req.readyState == 4 && req.status == 200) //если ответ положительный
{
answer.innerHTML = req.responseText;
}
}

код на странице new.php:

error_reporting(E_ALL);// убрать при переносе на хостинг
include_once "functions.php";
if(isset($_POST['create']))
{
if(checkdate($_POST['month'],$_POST['day'],$_POST['year']))
{
$deadline=$_POST['day'].".".$_POST['month'].".".$_POST['year'];
$date_show="";
create($_POST['man1'],$_POST['man2'],$_POST['user_captcha'],$_POST['captcha'],$deadline,$date_show);
}
else echo "Заданная дата не существует!";
}

Примечание:
функция create() работает корректно, проверял ее без ajax
Ответы:
Поупражняться в чистом яваскрипте, конечно, полезно. Но если вам дорого время своей жизни, используйте библиотеки - ту же jQuery, например.
Вы дали предельно подробное описание проблемы. Код и "не работает". Круто. Что возвращает-то? Какие ошибки в консоль сыплет, что в http-запросе в итоге уходит, что прихолит в ответ при обращении через ajax?
Еще непонятно, зачем вы ставите "multipart/form-data" в заголовки. Вы знаете, чем multipart отличается от других методов кодирования?
> req = new XmlHttp();  
Сами поняли, что написали? Вы создали новый объект, который не имеет ничего общего с созданным в ней объектом xmlhttprequest.
Меняйте на req = XmlHttp();
> if (req.readyState == 4 && req.status == 200) //если ответ положительный
Он таким будет, даже если PHP выкинет fatal error и завершится.
Проверяйте содержимое ответа.


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.