2011-03-16 76 views
0

我的疑问是,当我把document.getElementById('myPassword').value);放在函数validarDados中它对应于valor,那么我需要另一个varriable,但是valor1不能像我期望的那样工作,结果是echo(echo $ valor1;)是不确定的(回声$英勇;正常工作)ajax和php验证

<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); 
} 

在PHP文件

$campo = $_GET['campo']; 
$valor = $_GET['valor']; 
$valor1 = $_GET['valor1']; 

任何意义?

感谢

回答

1

您可以尝试使用jQuery,而不是:您通过AJAX提交之前http://api.jquery.com/jQuery.ajax

至于您所提供valor1代码已经是不确定的。您的php中的回显是否打印未定义?

尝试在将它传递给ajax之前提醒valor1,以便您会看到它未定义。

它之所以未定义,是因为你的onblur =“(validarDados())”只有2个参数。为了解决这个问题添加第三个参数是这样的:

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

注:我用THIS.VALUE代替的document.getElementById(“MYPASSWORD”)值,以节省空间,确实是对ID相同的值的基础。你用过。

您还可以尝试删除函数validarDados()中的第三个参数valor1。然后在该方法内部创建一个变量valor1并指定其值。我想知道valor1的目的是什么?无论如何,我希望这可以是一个帮助。

+0

感谢您的解释:) – 2011-03-16 16:17:34

+0

欢迎您:) – ace 2011-03-17 02:37:58

0

您应该使用原型来代替:http://www.prototypejs.org/

,然后使用Ajax.Request的或Ajax.Updater的,你只需要发送到PHP的参数“登录”和“密码”。

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

至于你的代码,这里有个错误:
<input type="password" id="myPassword" name="password" class="text" onblur="validarDados('myPassword', document.getElementById('myPassword').value);" />
它缺少第三个参数 “valor1”。

+0

是的问题是。我怎么能把第三个参数?我不确定如何提出建议谢谢 – 2011-03-16 02:32:24