Jump to content
Fórum Script Brasil
  • 0

Identifica Somente Na Segunda Chamada


diogoleter
 Share

Question

Prezados,

Estou com um pequeno problema no meu código Ajax. O objetivo é avisar em um alert que o usuário já existe cadastrado.

Tenho o seguinte:

//form_validate.js

function validar(){

var usuario=document.frm.usuario.value;
var senha1=document.frm.pas1.value;

// Valida existência de usuário


    var xmlhttp = false;
    
    //Check if we are using IE.
    try {
        //If the javascript version is greater than 5.
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        //If not, then use the older active x object.
        try {
            //If we are using IE.
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (E) {
            //Else we must be using a non-IE browser.
            xmlhttp = false;
        }
    }
    
    //If we are using a non-IE browser, create a javascript instance of the object.
    if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
        xmlhttp = new XMLHttpRequest();
    }
    
        var serverPage="users/veruser.php?us="+usuario;
    
        var res;
        xmlhttp.open("GET", serverPage);
        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                res = xmlhttp.responseText;
            }
        }
        xmlhttp.send(null);    
    
if (res>=1){
alert("Este usuário já existe!");
document.frm.usuario.focus(); 
return false;
}

}
Esse acima é o código Ajax, e abaixo o código php referente ao arquivo veruser.php
// veruser.php

<?php

include "../access_client.inc";

$username=$_GET["us"];

$sql=mysql_query("SELECT username FROM psbd1_user_detail WHERE username='$username'");
$nl=mysql_num_rows($sql);

echo "$nl";

?>

Já executei o php individualmente e o resultado sai correto.

Ao submeter o formulário de cadastro o sistema deve verificar se o usuário já existe no banco de dados e se existir não submeter o formulário.

O código acima funciona e tal, porém só funciona no segundo submit, ou seja, no primeiro ele passa.

Obrigado!

Edited by diogoleter
Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Cara tenta fazer assim...

var res;
        xmlhttp.open("GET", serverPage);
        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                res = xmlhttp.responseText;
                        =================================================+==>    Para cá!
                        if (res>=1){                                     |
                        alert("Este usuário já existe!");                |
                        document.frm.usuario.focus();                    |
                        return false;                                    |
                        =================================================+
            }
        }
        xmlhttp.send(null);    

=================================================+==>    Daqui
if (res>=1){                                     |
alert("Este usuário já existe!");                |
document.frm.usuario.focus();                    |
return false;                                    |
=================================================+

... Pois eu usu um codigo muito semelhante e aqui funciona.

Espero que ajude...

Link to comment
Share on other sites

  • 0
Cara tenta fazer assim...

var res;
        xmlhttp.open("GET", serverPage);
        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                res = xmlhttp.responseText;
                        =================================================+==>    Para cá!
                        if (res>=1){                                     |
                        alert("Este usuário já existe!");                |
                        document.frm.usuario.focus();                    |
                        return false;                                    |
                        =================================================+
            }
        }
        xmlhttp.send(null);    

=================================================+==>    Daqui
if (res>=1){                                     |
alert("Este usuário já existe!");                |
document.frm.usuario.focus();                    |
return false;                                    |
=================================================+

... Pois eu usu um codigo muito semelhante e aqui funciona.

Espero que ajude...

Eu até fiz isto, e funciona bem, aparece o alert mas assim que clico no ok do alert o formulário é submetido automaticamente. É aqui que me perco.

Obrigado!

Link to comment
Share on other sites

  • 0

Ah tá...

faz assim cara

if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                res = xmlhttp.responseText;
                 
                //INUTILIZANDO O FORMULARIO
                [color="#FF0000"][b]document.NOMEdOsEUfFORMULARIO.submit() = false;[/b][/color]

            }

É para funcionar...

Ou então faz assim cara...

1. Inicia o Formulario com o botão submit desativado

2. Depois que for retornado que o login não foi utilizado você ativa ele

falou...

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.2k
    • Total Posts
      647.5k
×
×
  • Create New...