2012-03-08 2 views
1

을 방금 연결했음을 부인합니다. 사용자 이름을 제출하는 양식이 내 Mysq Database에 여전히 존재하는 경우, 내 server side .php file에 제출하는 것을 거부하도록 구성 할 수 있습니까? 존재한다면? 여기 사용자 이름이 mysql db에 존재하는 경우

여기
$(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>'); 
       } 
     }); 

} 

당신이 양식을 제출하거나 당신이 할 수있는, 당신의 AJAX 요청에 화재 콜백 기다릴 수 내 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

어떤 형식입니까? 나는 아무 형태도 보지 않는다. 당신은 js로 그것을 비활성화 할 수 있습니다. –

+0

죄송합니다. 질문에 html 양식을 추가했습니다. –

+0

"frontend/functions/f_checkuser.php"는 무엇을 반환합니까? – ShankarSangoli

답변

2

입니다 자바 스크립트 코드 내 jQuery 플러그인입니다 또는 아니요 :

$(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*/ } 
     }); 
    }); 
}); 

그렇지 않은 경우에는 AJAX 요청을 setti ng async:false이지만 AJAX 요청이 해결 될 때까지 브라우저를 잠그고 사용자가 아무 것도 할 수없는 초가 될 수 있습니다. 이렇게하면 스크립트가 사용자에게 잘못되었다는 인상을 줄 수 있습니다.

0

당신은 html을 게시하지 않았지만 id가 check_checkusername_availability 인 객체를 클릭하면 어떤 방식 으로든 양식이 제출되는 것처럼 보입니다. 제출 버튼입니까? 그럴 경우 일반 버튼으로 변경하십시오. 그리고 콜 레스를 추가하여 공명을 처리하십시오.

관련 문제