Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.06.2009, 18:33
Новичок на форуме
Отправить личное сообщение для dimjan4 Посмотреть профиль Найти все сообщения от dimjan4
 
Регистрация: 02.06.2009
Сообщений: 5

Отправка данных обработчику без перезагрузки
Добрый день!
Надо сделать так, чтобы данные с формы отправлялись обработчику без перезагрузки страницы...как реолизовать??


Есть php обраьотчик, на него посылаем переменные:
id_user, text


Выводить должен сообщение только в том случае, если возникла ошибка...а так выводилась бы пустая форма...
Ответить с цитированием
  #2 (permalink)  
Старый 02.06.2009, 19:24
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

ajax
Ответить с цитированием
  #3 (permalink)  
Старый 02.06.2009, 19:27
Новичок на форуме
Отправить личное сообщение для dimjan4 Посмотреть профиль Найти все сообщения от dimjan4
 
Регистрация: 02.06.2009
Сообщений: 5

Я понял, что АЯКС, я задал вопрос: Как сделать...
Ответить с цитированием
  #4 (permalink)  
Старый 02.06.2009, 19:29
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

http://javascript.ru/ajax
http://xmlhttprequest.ru/
после того как ознакомитесь, у вас отпадет куча вопросов
Ответить с цитированием
  #5 (permalink)  
Старый 03.06.2009, 10:35
Новичок на форуме
Отправить личное сообщение для dimjan4 Посмотреть профиль Найти все сообщения от dimjan4
 
Регистрация: 02.06.2009
Сообщений: 5

Я нашол такой пример:
var xmlhttp = getXmlHttp()
xmlhttp.open("GET", uri, false);
xmlhttp.send(null);
if(!xmlhttp.getResponseHeader("Date")) {  
  var cached = xmlhttp;
  xmlhttp = getXmlHttp()
  var ifModifiedSince = cached.getResponseHeader("Last-Modified");
  ifModifiedSince = (ifModifiedSince) ? ifModifiedSince : new Date(0); 
  xmlhttp.open("GET", uri, false);
  xmlhttp.setRequestHeader("If-Modified-Since", ifModifiedSince);
  xmlhttp.send(null);
  if(xmlhttp.status == 304)  {
    xmlhttp = cached;
  }
}

а вот как мне переделать код для своего случая?
Ответить с цитированием
  #6 (permalink)  
Старый 03.06.2009, 11:36
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

ну и?
встраиваете в обработчик события onsubmit формы отправку данных на сервер.
не забудьте про return false в конце обработчика, иначе форма отправится все таки и обычным образом
данный код является синхронным, поэтому сразу после этого кода обрабатываем результат ответа от сервера.
но было бы лчше переделать его на асинхронный вариант, и использовать обработчик события onreadystatechange объекта xmlhttp

если вам непонятно ни слова из того что я написал, тогда марш учить азы
Ответить с цитированием
  #7 (permalink)  
Старый 03.06.2009, 11:51
Новичок на форуме
Отправить личное сообщение для dimjan4 Посмотреть профиль Найти все сообщения от dimjan4
 
Регистрация: 02.06.2009
Сообщений: 5

Смотрите, что я наделал:
Я понимаю, что сдесь груда ошибок...но помогите исправить...

<form action="" method="get" onSubmit="StartFcion ()">
	<input name="" type="text" id="text">
    <input name="submit" type="submit" value="&gt;&gt;ENTER&lt;&lt;">
</form>



function StartFcion () {
					var datas = document.getElementById ('text').value;
					var xmlhttp = getXmlHttp()
					xmlhttp.open("GET", uri, false);
					xmlhttp.send(null);
					if(!xmlhttp.getResponseHeader("Date")) {  
					  var cached = xmlhttp;
					  xmlhttp = getXmlHttp()
					  var ifModifiedSince = cached.getResponseHeader("Last-Modified");
					  ifModifiedSince = (ifModifiedSince) ? ifModifiedSince : datas; 
					  xmlhttp.open("GET", uri, false);
					  xmlhttp.setRequestHeader("If-Modified-Since", ifModifiedSince);
					  xmlhttp.send(null);
					  if(xmlhttp.status == 304)  {
						xmlhttp = cached;
					  }
					}
					return false;
			}
Ответить с цитированием
  #8 (permalink)  
Старый 05.06.2009, 22:33
Аспирант
Отправить личное сообщение для vvsh Посмотреть профиль Найти все сообщения от vvsh
 
Регистрация: 07.11.2008
Сообщений: 84

я не понимаю что вы наделали, советую почитать вам сайт который Gvozd, вторая ссылка. Я почитал его и все понял и вам советую.
Ответить с цитированием
  #9 (permalink)  
Старый 06.06.2009, 18:38
Аватар для Tim
Tim Tim вне форума
Профессор
Отправить личное сообщение для Tim Посмотреть профиль Найти все сообщения от Tim
 
Регистрация: 05.06.2009
Сообщений: 1,703

var request = false;

// Функция инициализация объекта для Ajax
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('Ошибка инициализации.'); }
}


// Функция отправки POST запроса
function POST_request()
{
	CreateRequest();
	
	var url = "/obrabotchik.php"; // URL для подключения (Ваш обработчик)
	
	request.open("POST", url, true);
	request.onreadystatechange = updatePage;
    request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	
	// Вытаскиваем значения из формы
	var id = document.getElementById("id_name").value;
	var user = document.getElementById("id_name").value;
	var text = document.getElementById("id_name").value;
	
	request.send("id=" + id + "&user=" + user + "&text=" + text); // Передаваемые параметры
	
	function updatePage() {
		if (request.readyState == 4)
        {
            if (request.status == 200)
            {
				// Вставляем ответ в div с id-ом "id_name"
				document.getElementById("id_name").innerHTML = request.responseText;
				
                delete request;
            }
            else { alert("Сервер не ответил"); }
        }
	}
}


<input type="submit" onclick="POST_request(); return false;" value="Submit">
Ответить с цитированием
  #10 (permalink)  
Старый 06.06.2009, 19:05
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Лучше на onsubmit формы повесить.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузка аватарки без перезагрузки страницы kez jQuery 35 22.05.2009 11:12
Подгрузка информера без перезагрузки страницы splean Общие вопросы Javascript 6 13.03.2009 15:31
Как сделать смену картинки, типа "до" и "после", без перезагрузки страницы? btstudio Events/DOM/Window 2 23.02.2009 20:43
Автообновление <div> без перезагрузки страницы Antihrist AJAX и COMET 14 28.07.2008 06:06