2012-03-08 1 views
1

je viens pluged un JQuery username check qui a bien fonctionné, le problème est que ma forme soumettant toujours même le nom d'utilisateur existe sur mon Mysq Database, comment puis-je configurer pour refuser de soumettre à mon server side .php file si cela existe?nient la soumission formulaire si le nom d'utilisateur existe sur le base de données mysql

ici est mon plugin Jquery code javascript

$(document).ready(function() { 


     //the min chars for checkusername 
     var min_chars = 3; 

     //result texts 
     var characters_error = 'Minimum amount of chars is 3'; 
     var checking_html = '<img src="images/checkusername.gif" /> Checking...'; 

     //when button is clicked 
     $('#check_checkusername_availability').click(function(){ 
      //run the character number check 
      if($('#checkusername').val().length < min_chars){ 
       //if it's bellow the minimum show characters_error text 
       $('#checkusername_availability_result').html(characters_error); 
      }else{   
       //else show the cheking_text and run the function to check 
       $('#checkusername_availability_result').html(checking_html); 
       check_availability(); 
      } 
     }); 


    }); 

//function to check checkusername availability 
function check_availability(){ 

     //get the checkusername 
     var checkusername = $('#checkusername').val(); 

     //use ajax to run the check 
     $.post("frontend/functions/f_checkuser.php", { checkusername: checkusername }, 
      function(result){  
       //if the result is 1 
       if(result == 1){ 
        //show that the checkusername is available 
        $('#checkusername_availability_result').html('<span class="is_available"><b>' +checkusername + '</b> is Available</span>'); 
       }else{ 
        //show that the checkusername is NOT available 
        $('#checkusername_availability_result').html('<span class="is_not_available"><b>' +checkusername + '</b> is not Available</span>'); 
       } 
     }); 

} 

ici est mon champ html

<table border="0" > 
      <tr> 
      <td valign="middle"><input class="input_field_12em required userUserName" name="userUserName" id="checkusername"></td> 
      <td valign="middle"><input type='button' id='check_checkusername_availability' value='Check Availability'></td> 
      <td><div id='checkusername_availability_result'></div></td> 
      </tr> 
     </table> 
+0

Quelle est sa forme? je ne vois pas de forme. Eh bien, vous pouvez le désactiver avec le js. –

+0

Désolé, il suffit d'ajouter le formulaire html à la question –

+0

Que retourne "frontend/functions/f_checkuser.php"? – ShankarSangoli

Répondre

2

Vous pouvez attendre le rappel au feu pour votre requête AJAX, vous pouvez soumettre le formulaire ou pas:

$(function() { 
    $('form').on('submit', function (event, extra) { 
     if (typeof extra == 'undefined') { 
      extra = false; 
     } 
     //if no extra argument is passed via `.trigger()` then don't submit the form 
     return extra; 
    }); 
    $('#check_checkusername_availability').on('click', function() { 
     $.ajax({ 
      url : 'frontend/functions/f_checkuser.php', 
      type : 'post', 
      data : { checkusername : $('#checkusername').val() }, 
      success : function (serverResponse) { 
       //now check the serverResponse variable to see if the name exists, if not then run this code: 
       $('form').trigger('submit', true); 
      }, 
      error : function (jqXHR, textStatus, errorThrown) { /*don't forget to handle possible errors*/ } 
     }); 
    }); 
}); 

Sinon, vous pouvez forcer la requête AJAX à être synchrone par setti ng async:false, mais cela verrouillera le navigateur jusqu'à ce que la requête AJAX se résout, ce qui pourrait être des secondes où l'utilisateur ne peut rien faire. Cela donne l'impression que votre script est cassé à l'utilisateur.

0

Vous n'avez pas envoyé votre code HTML, mais il semble que vous ayez cliqué sur un objet avec l'ID check_checkusername_availability. Est-ce un bouton de soumission? Si c'est le cas, changez simplement le bouton habituel. Et ajouter un rappel pour gérer la réponse.

Questions connexes