Ajax и PHP проверки - PullRequest
       1

Ajax и PHP проверки

0 голосов
/ 16 марта 2011

я сомневаюсь, что когда я помещаю document.getElementById('myPassword').value); в функцию validarDados, это соответствует значению, тогда мне нужен другой переменный, но значение valor1 не работает, как я ожидаю, результат в эхо (echo $ valor1 ;) не определено (echo $ valor; отлично работает)

<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);" />

Аякс

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'];

любая идея?

спасибо

Ответы [ 2 ]

1 голос
/ 16 марта 2011

Вместо этого вы можете попробовать использовать JQuery: http://api.jquery.com/jQuery.ajax

Что касается предоставленного вами кода, valor1 уже не определен до того, как вы отправите его через ajax.Выводит ли эхо в вашем php неопределенное значение.

Попытайтесь предупредить valor1 перед передачей его в ajax, чтобы вы увидели, что он не определен.

Причина, по которой он не определен, потому что ваш onblur ="(validarDados ())" имеет только 2 параметра.Чтобы исправить это, добавьте третий параметр, подобный следующему:

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

Примечание: я использовал значение this.value вместо document.getElementById ('myPassword'). Value для экономии места, имеет ли оно ту же базу значений наидентификатор, который вы использовали.

Вы также можете попытаться удалить третий параметр valor1 в вашей функции validarDados ().Затем создайте переменную valor1 внутри этого метода и укажите ее значения.Интересно, какова цель valor1?во всяком случае, я надеюсь, что это может помочь.

0 голосов
/ 16 марта 2011

Вместо этого вы должны использовать Prototype: http://www.prototypejs.org/

И затем, используя Ajax.Request или Ajax.Updater, вам просто нужно отправить в PHP параметры "login" и "password".

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

Что касается вашего кода, здесь есть ошибка:
<input type="password" id="myPassword" name="password" class="text" onblur="validarDados('myPassword', document.getElementById('myPassword').value);" />
Отсутствует третий параметр "valor1".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...