я написала ajax,но мне не понятно как здесь прописать условие как в первом посте.
Валидация нужна только для полей textarea и для капча: если textarea пуста,то вывести
сообщение(поле не заполнено) асинхронно, при событии onblur, если верно ничего не выводить;
для input c id="secret как раз проверить $_POST['secret'] == $_SESSION['secret'] - проверить,если
пользователь верно ввел символы, то ничего не выводить,если ошибся или строка пуста,то
сообщение(вы неправильно ввели символы/строка пуст),тоже событие onblur;
А если поля все верны,то просто после нажатия submit, вывести аlert('Спасибо, Ваш комментарий отправлен на модерацию') - как у меня в первом посте
добавила див в index.php дла вывода ошибки и onblur="valid()"
Введите число на картинке:<br /><input type="text" id="secret" name="secret" onblur="valid()" size="10"><br />
<img src="img.php"><br /><div id="myDiv" />
//запомнить ссылку на объект XMLHttpRequest
var xmlHttp = createXmlHttpRequestObject();
//cоздать объект XMLHttpRequest
function createXmlHttpRequestObject()
{
//для хранения ссылки на объект XMLHttpRequest
var xmlHttp;
try
{
xmlHttp = new XMLHttpRequest();
}
catch(e)
{
try
{
xmlHttp = new ActiveXObject("Microsoft.XMLHttp");
}
catch(e) { }
}
if(!xmlHttp)
alert("Ошибка создания объекта XMLHttpRequest. ");
else
return xmlHttp;
}
function valid()
{
//продолжать, только если в xmlHttp не пустая ссылка
if(xmlHttp)
{
//попытаться установить соединение с сервером
try
{
name = encodeURIComponent(document.getElementById('secret').value);
//инициировать доступ к серверу
xmlHttp.open("GET","index.php?name=" + name, true );
//метод, обрабатывающий ответы сервера
xmlHttp.onreadystatechange = handleRequestStateChange;
//асинхронный запрос серверу
xmlHttp.send(null);
}
catch(e)
{
alert("Нет соединения с сервером:\n" + e.toString());
}
}
}
//эта ф-ция вызывается при изменении состояния запроса HTTP
function handleRequestStateChange()
{
//когда readyState = 4, мы можем прочитать ответ сервера
if(xmlHttp.readyState == 4)
//продолжать,только если статутс HTTP равен "OK"
if(xmlHttp.status == 200)
{
try
{
//обработать ответ,полученный от сервера
handleServerResponse();
}
catch(e)
{
//вывести сообщение об ошибке
alert("Возникли проблемы во время получения данных:\n" + xmlHttp.statusText);
}
}
}
//обрабатывает ответ полученный от сервера
function handleServerResponse()
{
//прочитать сообщение полученное от сервера
var response = xmlHttp.responseText;
//получить ссылку на элемент <div>
myDiv = document.getElementById('myDiv');
//вывести сообщение
myDiv.innerHTML = 'Текст введенный пользователем:' + response;
}