Button does not connect with JavaScript to do verification

0

Below are the code of the two pages I'm using, the "btnUsuario" button should call the js, but when it is clicked it will appear a blank page written "false".

cadastroUsuarioComponent.class.php

classCadastroUsuarioComponentimplementsIComponents{publicstaticfunctionajax(){if(isset($_REQUEST['acaoAjax'])and!isset($_POST['btnCadastrarUsuario'])){$method=isset($_REQUEST['acaoAjax'])?$_REQUEST['acaoAjax']:NULL;$cadastroUsuarioComponent=newCadastroUsuarioComponent();$cadastroUsuarioComponent->show($method);}}//FimmétodoresponsávelpelassolicitaçõesAjaxpublicfunctionshow($method){switch($method){case'indexController':$this->indexController();break;case'validarCpfCadastrado':$this->validarCpfCadastrado();break;case'cadastrarUsuario':$this->cadastrarUsuario();break;case'posCadastroUsuario':$this->posCadastroUsuario();default:break;}}publicfunctionindexController(){echo'<divid="inserir">
    <form method="post" name="frmCadastroUsuario" id="frmCadastroUsuario">
    <input type="hidden" name="acaoAjax" value="validarCpfCadastrado" />
    <input type="hidden" name="component" value="CadastroUsuarioComponent" />
    <input type="hidden" name="method" value="cadastrarUsuario" />

    <h1>CADASTRO</h1><br/>

        <input type="text" class="insira" placeholder="Insira seu nome completo..." name="nome" id="nome" />

        <input type="text" class="insira" placeholder="Insira seu CPF..." name="cpf" id="cpf" />

        <input type="text" class="insira" placeholder="Insira seu email..." name="email" id="email" />

        <input type="password" class="insira" placeholder="Insira sua senha..." name="senha" id="senha" />

        <input type="password" class="insira" placeholder="Confirme sua senha..." name="confsenha" id="confsenha"/>

        <!--<button type="button" name="btn_cadastro" id="btn_cadastro">Cadastrar</button>-->
        <input type="submit" value="Cadastrar" name="btnCadastrarUsuario" />

    </form>
</div>
<div id="resultado"></div>';

echo '<script src="js/jsCadastroUsuarioComponent.js" type="text/javascript"></script>';     
}

public function validarCpfCadastrado(){
    //Recebe os elementos via GET
    $cpf = $_REQUEST['cpf']; 

    $usuario = new Usuario();
    $arrayUsuario = $usuario->select("and cpf_usu='{$cpf}'");

    //Aqui voc� verifica em seu banco de dados, se o login j� foi cadastrado.
    //Como exemplo vou verificar se o valor digitado está no array
   // if (in_array($email, $logins_cadastrados)){
    if(count($arrayUsuario)> 0){
    //Se o login já existir você exibe false
        echo 'false';
    }else if(!preg_match('/^[0-9]{3}\.[0-9]{3}\.[0-9]{3}\-[0-9]{2}$/',$cpf)){
        echo 'false';
    }else{
    //Se o login não existir você exibe true
        echo 'true';
    }    
    exit();
}

public function cadastrarUsuario(){

    $tipoUsuario =  new TipoUsuario();
    $formacao = new Formacao();
    $arrayTipoUsuario = $tipoUsuario->select("and nome_tipo_usu='SDE'");
    $arrayFormacao = $formacao->select("and nome_forma='PUBLI'");
    $usuario = new Usuario();
    $usuario->setNomeUsu($_REQUEST['nome']);
    $usuario->setCpfUsu($_REQUEST['cpf']);
    $usuario->setEmailUsu($_REQUEST['email']);
    $usuario->setSenhaUsu(Bcrypt::hash($_REQUEST['senha']));
    $usuario->setCodForma($arrayFormacao[0]['cod_forma']);
    $usuario->setCodTipoUsu($arrayTipoUsuario[0]['cod_tipo_usu']);
    $usuario->setCodStatusUsu('I');

    if($usuario->insert()->rowCount() > 0){
        $msg = ' Cadastro efetuado, aguarde o contato do Administrador.';
        //echo 'Você está cadastrado, aguarde o contato do administrador!';
    }else{
        $msg = ' Não foi possível efetuar seu cadastro, retorne mais tarde!';
       // echo 'Não foi possível efetuar seu cadastro, retorne mais tarde!';
    } 
   // $this->posCadastroUsuario($msg);
    $_SESSION['msg'] = $msg;
    echo '<script>';
    echo "location.href='?component=CadastroUsuarioComponent&method=posCadastroUsuario'";
    echo '</script>';

}

jsCadastroUsuarioComponent.js

Whenyouclickthebuttonwithoutwritingdatainthefields,thecodeshoulddothis:

Thank you in advance!

    
asked by anonymous 19.10.2018 / 02:39

1 answer

1

You have a form, and a submit button inside that form. This is an HTML feature, with this layout, clicking the button will send the form data to the server, and a new page with the answer will open.

If you do not want this to happen, remove the submit. On the other hand, you can also leave the submit, and put an event on your button via Javascript by calling the event.preventDefault () method so as not to send the information when clicking it, this way your site will be functional even if the user decides Disable Javascript.

    
19.10.2018 / 03:13