Показать сообщение отдельно
  #2 (permalink)  
Старый 29.07.2009, 17:20
Аватар для Tim
Tim Tim вне форума
Профессор
Отправить личное сообщение для Tim Посмотреть профиль Найти все сообщения от Tim
 
Регистрация: 05.06.2009
Сообщений: 1,703

Вам нужен AJAX.

1) Пишите функцию кроссбраузерной инициализации объёкта для асинхронного соединения.

var request = false;

// Функция инициализации объекта XMLHttpRequest
function CreateRequest() {
  try {
    request = new XMLHttpRequest();
  } catch (trymicrosoft) {
    try {
      request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (othermicrosoft) {
      try {
        request = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (failed) {
        request = false;
      }
    }
  }

  if (!request) {
    alert("Ошибка инициализации XMLHttpRequest! Возможно\n" +
                "ваш браузер не поддерживает этот объект.");
  }
}


Допустим имеем следующую форму

Логин:
<input type="text" name="login" id="login">
Пароль:
<input type="password" name="pw" id="pw">


Получить значения полей в JS можно так:

login = document.getElementById("login").value;
pw = document.getElementById("pw").value;


2) Теперь нужно передать запрос серверу

// Функция отправки запроса
function ajax_request()
{
	// Вызов функции инициализации объекта XMLHttpRequest
	CreateRequest();

	// URL для подключения
	var url = "/папка_с_нужным_скриптом/нужный_скрипт.php?login=" +login + "&pw=" + pw +
		"&random=" + Math.random(); // random (случайное число) - чтобы не было глюков с кешированием

	request.open("GET", url, true);
	request.onreadystatechange = updatePage;
	request.send(null);
	function updatePage()
	{
		if (request.readyState == 4)
		if (request.status == 200)
		{
			// Вызов функции обработки ответа и передача ей ответа
			update_list(request.responseText);
			delete request;
		}
		else
		{
            alert("Сервер не ответил");
		}
	}
}


3) Далее сервер должен обработать запос и отправить ответ. Если серверная часть написана на PHP то переданные переменные будут находиться в массиве GET т.е. ($_GET['login'] и $_GET['pw']). Всё что сервер выводит в браузер является ответом, включая сообщения об ошибках.


4) Теперь нада обработать ответ. (Вообщета это можно было сделать в той же функции.)

// Функция выполняющаяся после ответа сервера на AJAX запрос
function update_list(text)
{
    document.getElementById("id_div").innerHTML = text;
}


Данная функция просто вставляет ответ в div с идом id_div

P.S.: Надеюсь мой ответ что-то прояснит. Чтобы лучше разобраться в этой теме наберите в гугле - ibm ajax.
Ответить с цитированием