2011-03-16 5 views
0

내가 의심 스럽습니다, document.getElementById('myPassword').value); 함수를 validarDados에 넣습니다, 그리고 나서 다른 varriable 필요합니다,하지만 valor1 내가 예상대로 작동하지 않습니다, echo (echo $ valor1가) 정의되지 않는다 ($ 에코의 용기는, PHP 파일아약스 및 PHP 유효성 검사

$campo = $_GET['campo']; 
$valor = $_GET['valor']; 
$valor1 = $_GET['valor1']; 
<input type="password" id="myPassword" name="password" class="text" onblur="validarDados('myPassword', document.getElementById('myPassword').value);" /> 

<input type="password" id="passwordMatch" name="passwordMatch" class="text" onblur="validarDados('passwordMatch', document.getElementById('passwordMatch').value);" /> 

AJAX

var req; 

function validarDados(campo, valor, valor1) { 
    if(window.XMLHttpRequest) { 
     req = new XMLHttpRequest(); 
    } 

    else if(window.ActiveXObject) { 
     req = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 


    var url = "ajax/validacao.php?campo="+campo+"&valor="+valor +"&valor1="+valor1; 

    req.open("Get", url, true); 

    req.onreadystatechange = function() { 

     if(req.readyState == 1) { 
      document.getElementById('campo_' + campo + '').innerHTML = '<font color="gray">Verificando...</font>'; 
     } 

     if(req.readyState == 4 && req.status == 200) { 

      var resposta = req.responseText; 

      document.getElementById('campo_'+ campo +'').innerHTML = resposta; 
     } 
    } 

    req.send(null); 
} 

) 잘 작동이데아가 있습니까?

감사

답변

1

대신 JQuery와 사용하려고 할 수 있습니다 : 당신이 아약스를 통해 제출하기 전에 valor1을 제공 한 코드와 관련하여 http://api.jquery.com/jQuery.ajax

가 이미 정의되어 있지 않습니다. PHP에서 에코가 정의되지 않은 상태로 출력됩니까?

valor1에 경고하기 전에 ajax에 전달하여 정의되지 않았 음을 확인하십시오.

onblur = "(validarDados())"가 2 개의 매개 변수만을 가지고 있기 때문에 그것이 정의되지 않은 이유.

<input type="password" id="myPassword" name="password" class="text" onblur="validarDados('myPassword', this.value,'your3rdparam');" /> 

참고 :이 같은 세 번째 매개 변수를 추가 해결하려면. 내가 대신 document.getElementById를 ('myPassword') 값의 this.value 공간을 절약하는 데 사용는 ID에 같은 값 기반을 가지고 않습니다 당신이 사용 했어.

validarDados() 함수에서 세 번째 매개 변수 valor1을 제거 할 수도 있습니다. 그런 다음 해당 메소드 내부에 valor1이라는 변수를 만들고 해당 값을 지정합니다. 나는 valor1의 목적이 무엇일까? 어쨌든 이것이 도움이되기를 바랍니다.

+0

설명을 주셔서 감사합니다 :) –

+0

당신은 오신 것을 환영합니다 :) – ace

0
대신 프로토 타입을 사용한다

: 다음 http://www.prototypejs.org/

그리고, Ajax.Request로 또는이 Ajax.Updater를 사용하여, 당신은 단지 매개 변수 "로그인"와 "비밀번호"를 PHP로 보내야합니다.
<input type="password" id="myPassword" name="password" class="text" onblur="validarDados('myPassword', document.getElementById('myPassword').value);" />
그것은 3 매개 변수가 없습니다 "valor1"코드에 관해서는

new Ajax.Updater({success: "DIV ID HERE"}, "PROCESS.PHP", {
parameters: "login="+login+"&password="+password, method: "post"
});

, 여기에 오류가 있습니다.

+0

예 그렇습니다. 어떻게 세 번째 매개 변수를 넣을 수 있습니까? 어떻게 당신의 제안을 감사 할 수 있는지에 대한 확실하지 않다 –