Home
Button Mobile Webdesign em Foco
Newsletter Webdesign em Foco
Support Webdesign em Foco
Contribuition Webdesign em Foco
Doe para a Webdesign em Foco
Suporte da Webdesign em Foco
Fechar

Cadastro e Login - #21 Ajax

28/10/2018

Olá Turma! Hoje vamos inserir no nosso projeto o Ajax para que possamos oferecer ao nosso usuário uma experiência melhor com as respostas do sistema.

Usando ajax no Cadastro e Login

Para facilitar o trabalho com Ajax iremos baixar e linkar a biblioteca ZeptoJS. Dentro do método setFooter() da ClassLayout faremos o link dessa biblioteca.

$html="<script src='".DIRPAGE."lib/js/zepto.min.js'></script>\n";

Posteriormente adicionaremos na nossa view cadastro a div retornoCad que ficará responsável por receber os retornos dos formulários:

<div class="retornoCad"></div>

Incrementaremos a classValidate melhorando o retorno do método validateFinalCad().

#Validação final do cadastro
public function validateFinalCad($arrVar)
{
    if(count($this->getErro())>0){
        $arrResponse=[
            "retorno"=>"erro",
            "erros"=>$this->getErro()
        ];
    }else{
        $arrResponse=[
            "retorno"=>"success",
            "erros"=>null
        ];
        /*$this->cadastro->insertCad($arrVar);*/
    }
    return json_encode($arrResponse);
}

Repare que nosso retorno será no formato JSON.

O nosso controllerCadastro chamará esse método e imprimirá o resultado:

echo $validate->validateFinalCad($arrVar);

Agora a mágica ocorre no javascript. Faremos a função getRoot() que pegará o caminho absoluto do nosso sistema e chamaremos a função ajax após o submit do formulário:

//Ajax do formulário de cadastro
$("#formCadastro").on("submit",function(event){
    event.preventDefault();
    var dados=$(this).serialize();

    $.ajax({
       url: getRoot()+'controllers/controllerCadastro',
        type: 'post',
        dataType: 'json',
        data: dados,
        success: function (response) {
            $('.retornoCad').empty();
            if(response.retorno == 'erro'){
                getCaptcha();
                $.each(response.erros,function(key,value){
                    $('.retornoCad').append(value+'
'); }); }else{ $('.retornoCad').append('Dados inseridos com sucesso!'); } } }); });

Fizemos uma pequena alteração numa função que trabalhamos nas últimas aulas pra facilitar seu uso, a função getCaptcha(). Ela ficou assim:

function getCaptcha()
{
    grecaptcha.ready(function() {
        grecaptcha.execute('SUA KEY', {action: 'homepage'}).then(function(token) {
            const gRecaptchaResponse=document.querySelector("#g-recaptcha-response").value=token;
        });
    });
}
getCaptcha();

Sucesso nos códigos e na vida!

Receba as aulas da Webdesign em Foco em Seu Email
Suporte Webdesign em Foco

Posts Relacionados

Cadastro e Login - #20 Google ReCaptcha
Na aula de hoje faremos uma das últimas validações do nosso cadastro, realizaremos a validação através do ReCaptcha do Google.
Saiba mais!
Cadastro e Login - #22 Validate User Active
Nesse vídeo-tutorial vamos iniciar o desenvolvimento do controller de login fazendo a verificação do hash de login.
Saiba mais!
Cadastro e Login
Neste curso vamos aprender a criar um sistema completo de cadastro e login.
Saiba mais!