[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Ajax две формы на странице
inpost
Обрабатывается по ссылке "login_check.php" Ajax запрос. Подскажите, что именно надо поменять во втором javascript`е, чтобы работала вторая точно такая же форма на этой же странице ссылающаяся на "login_check2.php" и обновляла информацию в "<div id="divStatus2"></div>".
Я пробовал многое менять, так и не могу понять, что именно надо... уже 4 дня ищу в интернете, а так ответа найти и не могу... зарание спасибо.
Вот мой рабочий скрипт Ajax для отправки из первой формы:

<script language="JavaScript">    
function createXMLHttp() {
if(typeof XMLHttpRequest != "undefined") { // для браузеров аля Mozilla
return new XMLHttpRequest();
} else if(window.ActiveXObject) { // для Internet Explorer (all versions)
var aVersions = ["MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0",
"MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp",
"Microsoft.XMLHttp"
];
for (var i = 0; i < aVersions.length; i++) {
try {
var oXmlHttp = new ActiveXObject(aVersions[i]);
return oXmlHttp;
} catch (oError) {
}
}

throw new Error("Невозможно создать объект XMLHttp.");
}
}

function getRequestBody(oForm) {
var aParams = new Array();
for(var i = 0; i < oForm.elements.length; i++) {
var sParam = encodeURIComponent(oForm.elements[i].name);
sParam += "=";
sParam += encodeURIComponent(oForm.elements[i].value);
aParams.push(sParam);
}
return aParams.join("&");
}
function sendRequest() {
var oForm = document.forms[0];
var sBody = getRequestBody(oForm);
var oXmlHttp = createXMLHttp();

oXmlHttp.open("POST",oForm.action, true);
oXmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
oXmlHttp.onreadystatechange = function() {
if(oXmlHttp.readyState == 4) {
if(oXmlHttp.status == 200) {
saveResult(oXmlHttp.responseText);
} else {
saveResult("Ошибка: " + oXmlHttp.statusText);
}
}
}
;
oXmlHttp.send(sBody);
}
function saveResult(sText) {
var sElem = document.getElementById("divStatus1");
sElem.innerHTML = sText;
}
</script>


Сама форма:
<form method='POST' action='login_check.php' OnSubmit='sendRequest(); return false'>
<input
type='text' name='txtlogin' value=''>
<input
type='password' name='txtpassword' value=''>
<input
type='submit' value='Отправить запрос[s]' />
</form>
<div
id="divStatus1"></div>

Вторая форма:
<form method='POST' action='login_check2.php' OnSubmit='sendRequest2(); return false'>
<input
type='text' name='txtlogin2' value=''>
<input
type='password' name='txtpassword2' value=''>
<input
type='submit' value='Отправить запрос2' />
</form>
<div
id="divStatus2"></div>




Спустя 4 минуты, 16 секунд (15.12.2009 - 02:06) twin написал(а):
Цитата
уже 4 дня ищу в интернете

Искать надо было здесь.
Там все просто и без затей. smile.gif

Спустя 4 минуты, 39 секунд (15.12.2009 - 02:11) VolCh написал(а):
В sendrequest2 написать
var oForm = document.forms[1];
и использовать saveResult2, в которой написать
var sElem = document.getElementById("divStatus2"); 


Пробовали?

Спустя 12 часов, 58 минут, 9 секунд (15.12.2009 - 15:09) inpost написал(а):
VolCh и Twin спасибо большое!!!
Всякое пробовал, а такое - нет... помогло! Спасибо ещё раз VolCh!

Спустя 4 часа, 32 минуты, 16 секунд (15.12.2009 - 19:41) VolCh написал(а):
По хорошему не надо делать sendrequest2 и saveResult2, а просто сделать sendrequest с парметрами типа form и div_id

Спустя 5 часов, 6 минут, 38 секунд (16.12.2009 - 00:48) inpost написал(а):
Вопрос отпадает, методом тыка все получилось )))


_____________
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.