2016-07-05 2 views
0

내 등록 페이지에서 필드 유효성 검사를 위해 jQuery 유효성 검사 플러그인을 사용하고 있습니다.jQuery에서 원격 PHP의 특정 함수 호출 Validate의 원격 메소드

나는 현재 입력 한 사용자 이름이 이미 존재 여부를 확인 여부에 대한 내 검증 JS에서이 코드를 가지고 :

"remote": { 
    url: "../assets/php/checkUsername.php", 
    type: "post", 
    data: { 
     username: function() { 
      return $('#register-form :input[name="username"]').val(); 
     } 
    } 
} 

checkUsername.php는 기본적으로 입력 한 사용자 이름의 존재에 따라 true 또는 false를 반환합니다. 이것은 모두 잘 작동하지만 최적화하고 싶습니다.

이제는 account_exists($username)이라는 기능이있는 core.php 파일이 있습니다. 이 함수는 기본적으로 주어진 사용자 이름의 존재에 따라 true 또는 false를 반환합니다.

제 질문은 어떻게 checkUsername.php을 없애고 대신 account_exists 기능을 사용합니까? 내 core.php 파일에 있습니까?

core.php 분명히 core.php에서 특정 기능을 호출하기 위해 유효성 검사 스크립트를 어떻게 말할 수 있는지 잘 모르겠습니다.

core.php 당신이 또한 core.php을 수정해야합니다 물론

"remote": { 
      url: "../assets/php/core.php", 
      type: "post",    
      data: { 
       action: 'check_account', 
       username: function() { 
        return $('#register-form :input[name="username"]').val(); 
       } 
      } 
     } 

를 수행 할 작업을 알 수 있도록 조치 == 'check_account'경우 필요한 코드를 실행 있도록 다른 매개 변수를 전달할 수 있습니다

+0

당신이 익명 함수 필요가 없습니다 {사용자 이름 : $. ('# 레지스터 형식 : 입력 [이름 = "사용자 이름"]') 발을()}이' –

+0

당신에게 수 파일의 시작 부분에서 확인하십시오? 'if (isset ($ _ GET [ 'checkUsername'])) {account_exists(); }' – atoms

+2

PHP 스크립트에 데이터를 보내서 PHP 스크립트가 어떤 기능을 사용하고 정보를 반환하는지 알려줍니다. 이를 용이하게하기 위해 함수를 case 문에 넣을 수 있습니다. 'switch ($ _ POST [ 'function']) {case 'username'....' –

답변

0

`데이터 : 참고로

if ($_POST['action']=='check_account') 
{ 
...do something... 
} 
+0

유일한 문제는 데이터 문을 올바르게 변경하지 않아서 대답이 근본적으로 잘못된 것입니다. –

+0

네 말이 맞아. – Borgtex

+1

@JayBlanchard를 수정하면 효과가 있습니다. 두 번째 예제를 보시려면 여기를 누르십시오 : https://jqueryvalidation.org/remote-method/ – Sparky