2010-08-10 6 views
0

Je crée une page join now.Je prends le nom d'utilisateur, mot de passe, confirmer le mot de passe et l'email pour être enregistré. ces entrées, je suis en train de valider par javascript et je vérifie que login name n'existe déjà ou non par ajax.If il existe je simplement l'affichage d'un msg que this id exists already please chose another one.
Problème: est que si un utilisateur a tapé un identifiant de connexion qui existe déjà , ajax montrera qui est existe déjà, mais encore utilisateur peut cliquer sur soumettre, car cette fois-ci JavaScript passera parce que champ login id n'empty.even je peux vérifier sur le processus côté serveur db mais I want to set one indicator or flag kind of, until and unless user enters such login id that does not exist he wont be able to submit form. mon ajax code-comment mettre en drapeau ou indicateur par ajax en php?

... 
xmlhttp.onreadystatechange=function() 
      { 
      if (xmlhttp.readyState==4 && xmlhttp.status==200) 
      { 
      document.getElementById("loginName").innerHTML=xmlhttp.responseText; 
      } 
      } 
... 

Fichier db -

//check in user table 
if($num_rows == 0) 
{ 
    echo "<font color='Green'>Ok, you can chose <b>$logid</b> as Login name.</font>"; 
} 
elseif($num_rows >= 1) 
{ 
echo "<font color='Red'><b>$logid</b> Ligin name has already been taken, Please chose another Login name.</font>"; 
} 

Ou comment puis-je set login zone de texte Id chaîne vide avec le msg d'erreur ajax? Quelque chose comme-

elseif($num_rows >= 1) 
{ 
?> 
    <script> 
     document.getElementById("newid").value=""; 
    </script> 
<?php 
echo "<font color='Red'><b>$logid</b> Ligin name has already been taken, Please chose another Login name.</font>"; 
} 

Répondre

0

Vous pouvez faire quelque chose comme la mise en forme aux handicapés et permettant quand ils avez sélectionné une connexion qui est disponible:

if (xmlhttp.readyState==4 && xmlhttp.status==200) 
{ 
    document.getElementById("loginName").innerHTML=xmlhttp.responseText; 
    document.getElementById('id-of-form').disabled = false; 
} 

personnellement, je ne vous inquiétez pas trop parce que vous devez revérifier sur la soumission du formulaire de toute façon, parce que si a) ils ont JS désactivé ou b) sélectionner le même Connectez-vous en tant que quelqu'un d'autre qui est également sur le point de rejoindre maintenant dans le même instant (condition de course), vous devez Bien sûr, ils ne réussissent pas tous les deux. La vérification d'un nom de connexion est une fonctionnalité d'utilisation pour aider les gens à ne pas vous détester, ainsi que votre site Web, à leur faire renvoyer un formulaire des dizaines de fois pour trouver une bonne connexion.

0

Je pense que cela devrait faire
créer une forme comme celui-ci

<form name="name1" method="post" action="url" onsubmit="return checkForm(this)"> 
    <!-- your fields here --> 
    <!-- add an hidden field --> 
    <input type="hidden" id="hidden1" name="hiddenf" value="0" /> 
</form> 
<script> 
function checkForm(form) 
{ 
    return form.hiddenf.value; 
} 
</script> 

Ensuite, dans la fonction de rappel ajax

... 
      xmlhttp.onreadystatechange=function() 
      { 
      if (xmlhttp.readyState==4 && xmlhttp.status==200) 
      { 
       document.getElementById("loginName").innerHTML=xmlhttp.responseText; 
       if(xmlhttp.responseText == 'not found') //your exist-id-message here 
        document.getElementById('hidden1').value = 0; 
       else 
        document.getElementById('hidden1').value = 1; 
      } 
... 
Questions connexes