Показать сообщение отдельно
  #10 (permalink)  
Старый 17.06.2013, 16:21
Аватар для Nailya
Кандидат Javascript-наук
Отправить личное сообщение для Nailya Посмотреть профиль Найти все сообщения от Nailya
 
Регистрация: 05.04.2013
Сообщений: 135

я написала 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;
}

Последний раз редактировалось Nailya, 17.06.2013 в 16:24.
Ответить с цитированием