2009-03-03 9 views
0

Hé, je suis en train d'exécuter deux fonctions ajax dans la même pagedeux fonctions ajax dans une page?

On envoie la valeur utilisée pour le nom d'utilisateur l'autre envoie la valeur utilisée pour e-mail, qui envoie à ajax.php & ajax1.php

ci-dessous est mon code:

<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> 

Le texte de réponse devrait alors être mis en balises div (msg & msg1)

Merci

+0

Quelle est exactement la question ici? – annakata

Répondre

1

Avez-vous regardé dans jQuery, cela réduira considérablement la complexité de votre page et fournira une API agréable pour l'abstraction du navigateur. Je peux déjà voir les problèmes de navigateur.

+0

Yeh j'ai déjà examiné cela. Le code ci-dessus "juste" fonctionne ... quand je l'ai fait fonctionner pleinement je vais le nettoyer et résoudre les problèmes ta –

0

Une autre instruction if que vous devriez probablement ajouter à "if (httpxml.readyState == 4)" est "if (httpxml.status == 200)". Cela fait en sorte qu'il n'y avait pas de problèmes côté serveur. Appeler les deux demandes la même chose est dangereux car tout changement apporté à l'une peut remplacer l'autre.

0

Vous cherchez à éviter le code en double? Créez une troisième fonction qui crée l'objet httpxml et transmettez-le aux deux premiers.

httpxml = createAjax(); 
AjaxFunction(httpxml, username); 
Questions connexes