две функции ajax на одной странице? - PullRequest
0 голосов
/ 03 марта 2009

Эй, я пытаюсь запустить две функции AJAX на одной странице

Один отправляет значение, введенное в имя пользователя другой отправляет значение, введенное в электронное письмо, которое отправляет ajax.php & ajax1.php

ниже мой код:

<script type="text/javascript">
function AjaxFunction(username)
{
var httpxml;
try
{
// Firefox, Opera 8.0+, Safari
httpxml=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
httpxml=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
httpxml=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{  
alert("Your browser does not support AJAX!");
return false;
}
}
}
 function stateck() 
{
 if(httpxml.readyState==4)
{
document.getElementById("msg").innerHTML=httpxml.responseText;

}
}

httpxml.onreadystatechange=stateck;
url="ajax.php?value=" + username.value;
httpxml.open("GET",url,true);
httpxml.send(null);

}


 function AjaxFunction(email)
 {
 var httpxml;
 try
 {
 // Firefox, Opera 8.0+, Safari
 httpxml=new XMLHttpRequest();
 }
 catch (e)
{
// Internet Explorer
try
{
httpxml=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
httpxml=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("Your browser does not support AJAX!");
return false;
}
}
}
function stateck() 
{
if(httpxml.readyState==4)
 {
 document.getElementById("msg1").innerHTML=httpxml.responseText;

}
}

httpxml.onreadystatechange=stateck;
url1="ajax.php1?value=" + email.value;
httpxml.open("GET",url1,true);
httpxml.send(null);

}
</script>



<form id="form" name="form" method="post" action="">
  <p>
    <label>Username
       <input type="text" name="username" id="username" onBlur="AjaxFunction(username);">
    </label>
  <div id="msg"></div>
  <p>Email 
    <label>
       <input type="text" name="email" id="email" onBlur="email(EMAIL);">
  </label>  
   <div id="msg1"></div>
   <p>
     <label>
      <input type="submit" name="button" id="button" value="Submit">
    </label>
</form>

Текст ответа должен быть помещен в теги div (msg & msg1)

Спасибо

Ответы [ 3 ]

1 голос
/ 03 марта 2009

Посмотрели ли вы jQuery , это значительно снизит сложность вашей страницы и обеспечит хороший API для абстракции браузера. Я уже вижу проблемы с несколькими браузерами.

0 голосов
/ 05 июля 2011

Вы хотите избежать дублирования кода? Создайте третью функцию, которая создает объект httpxml, и передайте его первым двум.

httpxml = createAjax();
AjaxFunction(httpxml, username);
0 голосов
/ 05 июля 2011

Еще одним оператором if, который вы, вероятно, должны добавить к «if (httpxml.readyState == 4)», является «if (httpxml.status == 200)». Это гарантирует, что не было никаких проблем на стороне сервера. Называть оба запроса одной и той же вещью опасно, потому что любые изменения, сделанные в одном, могут перезаписать другой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...