Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.04.2011, 21:19
Интересующийся
Отправить личное сообщение для martinss Посмотреть профиль Найти все сообщения от martinss
 
Регистрация: 29.12.2010
Сообщений: 24

Проблема при передаче запроса POST
Добрый вечер, недавно начал изучать AJAX и столкнулся с проблемой, решение которой не могу найти ни где..:
проблема с отправкой формы методом POST:


вот форма:

<input type="text" name="username" id="uname"/>
<input type="text" name="email" id="email"/>
<input type="text" name="login" id="lgn"/>
<input type="submit" value=" Отправить " id="aj_submit" onclick="reg()"/>
<input type="hidden" name="do" value="register" />


сразу вопрос (нужно ли добавлять теги <form method="post" action="">)?

вот скрипт AJAX:
function getXmlHttp(){
		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 reg(){
		var req = getXmlHttp();
		var statusElem = document.getElementById('reg_status');
		req.onreadystatechange = function(){  
			// onreadystatechange активируется при получении ответа сервера
			if (req.readyState == 4){ 
				// если запрос закончил выполняться
				statusElem.innerHTML = req.statusText; // показать статус (Not Found, ОК..)
				if(req.status == 200){ 
					 // если статус 200 (ОК) - выдать ответ пользователю
					//alert("Ответ сервера: "+req.responseText);
					document.getElementById("basic-modal-content").innerHTML = req.responseText;
				}
				// тут можно добавить else с обработкой ошибок запроса
			}
		}
		// (3) задать адрес подключения
		var params = 'username=' + encodeURIComponent(username) + '&email=' + encodeURIComponent(email) + '&login=' + encodeURIComponent(login) + '&do=' + encodeURIComponent(do);
		req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		req.open("POST", 'inc/register_ajax.php', true);  
		// объект запроса подготовлен: указан адрес и создана функция onreadystatechange
		// для обработки ответа сервера
		req.send();  // отослать запрос
	}



Форма вообще не отправляется.
А если обернуть инпуты в тег
<form method="post" action="">

то страница перезагружается и ничего не происходит все равно.

Прошу помочь мне разобраться в этом, всем заранее спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 09.04.2011, 22:20
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

причём форма к аяксу?
запусти функцию getXmlHttp()
а затем reg()
да и в посте незачем кодировать через encodeURIComponent-вообще незачем кодировать

а вообще тебе стоит начать с основ языка

Последний раз редактировалось dmitriymar, 09.04.2011 в 22:26.
Ответить с цитированием
  #3 (permalink)  
Старый 09.04.2011, 22:32
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от dmitriymar
да и в посте незачем кодировать через encodeURIComponent-вообще незачем кодировать
Надо кодировать, если content-type: application/x-www-form-urlencoded
Ответить с цитированием
  #4 (permalink)  
Старый 09.04.2011, 22:39
Интересующийся
Отправить личное сообщение для martinss Посмотреть профиль Найти все сообщения от martinss
 
Регистрация: 29.12.2010
Сообщений: 24

так я вообще то итак вызываю ее:
<input type="submit" value=" Отправить " id="aj_submit" onclick="reg()"/>
а в функции reg()
вызывается другая функция:
function reg(){
        var req = getXmlHttp();
...
}


да, инфу по этим всем действиям я нашел тут: http://xmlhttprequest.ru/
Ответить с цитированием
  #5 (permalink)  
Старый 09.04.2011, 22:51
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от Kolyaj
Надо кодировать, если content-type: application/x-www-form-urlencoded
у меня всё с этим заголовком без кодирования проходит-хотя мож опр спецсимволы не пройдут-но такого ещё не встречал
Ответить с цитированием
  #6 (permalink)  
Старый 09.04.2011, 22:55
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

<input type="button" value=" Отправить " id="aj_submit" onclick="reg()"/>-эт раз
ищи ошибку в адресе-эт два-попробуй прописать полный путь к файлу.
req.send(?); -и что ты отсылаешь? эт три
поставь дебагер и посмотри где ошибка -не отсылается,ответ не приходит,синтаксическая ошибка......

Последний раз редактировалось dmitriymar, 09.04.2011 в 22:59.
Ответить с цитированием
  #7 (permalink)  
Старый 09.04.2011, 23:02
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от dmitriymar
хотя мож опр спецсимволы не пройдут
& например.
Ответить с цитированием
  #8 (permalink)  
Старый 09.04.2011, 23:35
Интересующийся
Отправить личное сообщение для martinss Посмотреть профиль Найти все сообщения от martinss
 
Регистрация: 29.12.2010
Сообщений: 24

Всем спасибо, теперь работает!!!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема при подстановке значений royksopp Общие вопросы Javascript 1 11.07.2010 18:20
Проблема с событиями после ajax запроса Mirgorod AJAX и COMET 5 12.06.2010 18:24
Проблема при подключении яваскрипта cyberx AJAX и COMET 16 16.04.2010 16:13
При отправке POST-запроса в заголовке к серверу вместо POST указывается OPTIONS VasiliyLuka AJAX и COMET 1 14.12.2009 14:57
Проблема в document.write при использовании setInterval() GOll Общие вопросы Javascript 21 06.10.2008 17:38