O que é AJAX e como aplicá-la com PHP, parte 1

Enviado por Alfred R. Baudisch em AJAX, PHP, CPAINT.
Ir para os Comentários.

Caminho AJAXComo lançamento do blog, irei republicar todos os meus artigos de PHP, alguns revisados (como o Instalando Apache + MySQL + PHP 5 no Windows - que é recorde de visitação em todos os sites que foi publicado). De primeira, segue o artigo sobre AJAX.

Inclusive, a segunda parte já está pronta e logo estará publicada no Linha de Código e Plug Masters.

O que é AJAX e como aplicá-la com PHP, parte 1

O uso de AJAX está se proliferando cada vez mais pela internet, justamente por trazer mais interatividade e usabilidade para as aplicações – ou até mesmo, mais “glamour”. Junto disso, surgem inúmeras maneiras de implementar essa combinação (AJAX não é uma tecnologia, é um uso conjunto de tecnologias), algumas complicadas e com recursos demais, outras simplificadas, mas deficientes de recursos. A classe CPAINT é uma classe completa e permite incluir AJAX eficientemente em suas aplicações web. Nessa série de artigos, entenda o que é AJAX, as características da CPAINT, bem como uma explicações por meio de códigos exemplo.


3 Respostas para “O que é AJAX e como aplicá-la com PHP, parte 1”

  1. Renato Escreveu:

    Olá, tudo bem? estou com problemas, exemplo;
    o email e o preço funcionam
    mas eu criei as funções referentes aos logins e aos cpfs e nada aconteceu
    fiz isso em validaformulario e em validacao.js
    não sei o que aconteceu, ja procurei ja virei a noite. mas parece que só você entende disto, utilizei a partir do seu segundo artigo que está no linha de codigo
    pode me ajudar?? vou postar para vocêr os scripts

  2. Renato Escreveu:

    meu hotmail é rmousan@hotmail.com
    se puder me enviar um e-mail com o que está de errado obrigado

    validacao.js

    // Cria objeto CPAINT
    var cp = new cpaint();
    cp.set_transfer_mode(’POST’);
    cp.set_response_type(’TEXT’);

    // ————————————
    // GERAL
    // ————————————
    var erroEmail = false;
    var erroLogin = false;
    var erroCpf = false;
    var erroFabricante = false;
    var erroPreco = false;

    function verificaForm(form)
    {
    if(erroEmail || erroFabricante || erroPreco || erroLogin || erroCpf ||
    form.email.value == ‘’ || form.fabricante.value == 0 || form.login.value == ‘’ || form.cpf.value == ‘’ ||
    form.modelo.value == 0 || form.preco.value == ‘’)
    {
    alert(’Preencha todos os campos corretamente!’);
    return false;
    }

    return true;
    }
    // ————————————

    // ————————————
    // E-MAIL
    // ————————————
    // Valida e-mail fornecido
    function verificaEmail()
    {
    // Obtém valor digitado
    valor = document.getElementById(’email’).value;

    // E-mail em branco? Faz validação direta em Javascript
    if(valor == ‘’) {
    document.getElementById(’email_erro’).innerHTML = ‘Preencha o E-mail’;
    erroEmail = true;
    }
    // OK, e-mail preenchido, chama PHP e valida
    else
    {
    // PRINCIPAL MÉTODO (call) = Chama o PHP e obtém o retorno
    cp.call(’validaFormulario.php’, ‘verificaEmail’, retornaEmail, valor);
    }
    }

    // Obtém o retorno da validação feita em AJAX e processa-o
    function retornaEmail(retorno)
    {
    // Se teve algum retorno após verificar o e-mail,
    // significa erro, portanto imprime-o.
    if(retorno) {
    document.getElementById(’email_erro’).innerHTML = retorno;
    erroEmail = true;

    }
    else {
    document.getElementById(’email_erro’).innerHTML = ‘’;
    erroEmail = false;
    }
    }

    // ————————————
    // Login
    // ————————————
    // Valida login fornecido
    function verificaLogin()
    {
    // Obtém valor digitado
    valor = document.getElementById(’login’).value;

    // E-mail em branco? Faz validação direta em Javascript
    if(valor == ‘’) {
    document.getElementById(’login_erro’).innerHTML = ‘Preencha o Login’;
    erroLogin = true;
    }
    // OK, Login preenchido, chama PHP e valida
    else
    {
    // PRINCIPAL MÉTODO (call) = Chama o PHP e obtém o retorno
    cp.call(’validaFormulario.php’, ‘verificaLogin’, retornaLogin, valor);
    }
    }

    // Obtém o retorno da validação feita em AJAX e processa-o
    function retornaLogin(retorno)
    {
    // Se teve algum retorno após verificar o e-mail,
    // significa erro, portanto imprime-o.
    if(retorno) {
    document.getElementById(’login_erro’).innerHTML = retorno;
    erroLogin = true;
    }
    else {
    document.getElementById(’login_erro’).innerHTML = ‘’;
    erroLogin = false;
    }
    }

    // ————————————
    // CPF
    // ————————————
    // Valida CPF fornecido
    function verificaCpf()
    {
    // Obtém valor digitado
    valor = document.getElementById(’cpf’).value;

    // E-mail em branco? Faz validação direta em Javascript
    if(valor == ‘’) {
    document.getElementById(’cpf_erro’).innerHTML = ‘Por favor Preencha o Cpf é necessário para que não haja falsificação de dados e cadastro’;
    erroLogin = true;
    }
    // OK, Login preenchido, chama PHP e valida
    else
    {
    // PRINCIPAL MÉTODO (call) = Chama o PHP e obtém o retorno
    cp.call(’validaFormulario.php’, ‘verificaCpf’, retornaCpf, valor);
    }
    }

    // Obtém o retorno da validação feita em AJAX e processa-o
    function retornaCpf(retorno)
    {
    // Se teve algum retorno após verificar o e-mail,
    // significa erro, portanto imprime-o.
    if(retorno) {
    document.getElementById(’cpf_erro’).innerHTML = retorno;
    erroCpf = true;
    }
    else {
    document.getElementById(’cpf_erro’).innerHTML = ‘’;
    erroCpf = false;
    }
    }

    // ————————————

    // ————————————
    // FABRICANTES & MODELOS
    // ————————————
    function carregaModelos(campo)
    {
    fabricanteId = campo.value;

    // Nenhuma fabricante foi selecionada. Caso houvesse alguma seleção
    // anterior, limpa. Pois não há modelo para fabricante 0.
    if(fabricanteId == 0) {
    document.getElementById(’modelos_local’).innerHTML = ‘Selecione um Fabricante’;
    // Limpa os erros, caso ocorreu antes dessa boa seleção
    document.getElementById(’fabricante_erro’).innerHTML = ‘’;
    }

    // Chama PHP para carregar modelos da fabricante selecionada
    else
    cp.call(’validaFormulario.php’, ‘obtemModelos’, retornaModelos, fabricanteId);
    }

    function retornaModelos(retorno)
    {
    // Nenhum modelo encontrado
    if(retorno == ‘N’) {
    document.getElementById(’fabricante_erro’).innerHTML = ‘Nenhum Modelo para esse fabricante. Selecione outro’;
    // Limpa modelos anteriores, já que agora selecionou uma fabricante vazia
    document.getElementById(’modelos_local’).innerHTML = ‘Selecione um Fabricante’;

    erroFabricante = true;
    }

    // Ok, há modelos para o fabricante
    else {
    document.getElementById(’modelos_local’).innerHTML = retorno;
    // Limpa os erros, caso ocorreu antes dessa boa seleção
    document.getElementById(’fabricante_erro’).innerHTML = ‘’;

    erroFabricante = false;
    }
    }

    // ————————————

    // ————————————
    // PREÇO
    // ————————————
    function verificaPreco()
    {
    // Obtém valor digitado
    valor = document.getElementById(’preco’).value;

    // Preço em branco? Faz validação direta em Javascript
    if(valor == ‘’) {
    document.getElementById(’preco_erro’).innerHTML = ‘Preencha o Preço’;
    erroPreco = true;
    }
    // OK, preço preenchido, chama PHP e valida
    else
    {
    cp.call(’validaFormulario.php’, ‘verificaPreco’, retornaPreco, valor);
    }
    }

    // Obtém o retorno da validação feita em AJAX e processa-o
    function retornaPreco(retorno)
    {
    // Se teve algum retorno após verificar o preço,
    // significa erro, portanto imprime-o.
    if(retorno) {
    document.getElementById(’preco_erro’).innerHTML = retorno;
    erroPreco = true;
    }
    else {
    document.getElementById(’preco_erro’).innerHTML = ‘’;
    erroPreco = false;
    }
    }
    // ————————————

    validaformulario.php

    register(array(’validaFormulario’, ‘verificaEmail’));
    $CPaint->register(array(’validaFormulario’, ‘verificaLogin’));
    $CPaint->register(array(’validaFormulario’, ‘verificaCpf’));
    $CPaint->register(array(’validaFormulario’, ‘obtemModelos’));
    $CPaint->register(array(’validaFormulario’, ‘verificaPreco’));

    // Inicia Cpaint e retorno de dados
    $CPaint->start(’ISO-8859-1′);
    $CPaint->return_data();

    class validaFormulario
    {
    function verificaEmail($Email)
    {
    // Primeiro verifica se está em formato válido
    if(preg_match(’/^[a-z0-9\.\-_\+]+@[a-z0-9\-_]+\.([a-z0-9\-_]+\.)*?[a-z]+$/is’, $Email))
    {
    // E-mail ok, verifica se ele já está cadastrado
    $SQL = ‘SELECT email
    FROM cadusuario
    WHERE email = \'’ . $Email . ‘\'’;
    $resId = mysql_query($SQL);

    // E-mail encontrado
    if(mysql_num_rows($resId))
    validaFormulario::EnviaValor(’ Este E-mail ja está cadastrado, por favor digite outro.’);
    else
    validaFormulario::EnviaValor(’Este está Disponivel’);
    }
    // E-mail inválido
    else
    validaFormulario::EnviaValor(’E-mail em formato inválido!’);
    }

    function verificaLogin($Login)
    {
    $SQL = ‘SELECT login
    FROM cadusuario
    WHERE login = \'’ . $Login . ‘\'’;
    $resId = mysql_query($SQL);
    // E-mail encontrado
    if(mysql_num_rows($resId))
    validaFormulario::EnviaValor(’ Este Login ja está cadastrado, por favor digite outro.’);
    else
    validaFormulario::EnviaValor(’Este está Disponivel’);
    }

    function verificaCpf($Cpf)
    {
    $SQL = ‘SELECT cpf
    FROM cadusuario
    WHERE cpf = \'’ . $Cpf . ‘\'’;
    $resId = mysql_query($SQL);
    // E-mail encontrado
    if(mysql_num_rows($resId))
    validaFormulario::EnviaValor(’ Este Login ja está cadastrado, por favor digite outro.’);
    else
    validaFormulario::EnviaValor(’Este está Disponivel’);
    }

    function verificaPreco($Preco)
    {
    require ‘testepercentual.php’;
    // Verifica se está em formato válido
    validaFormulario::EnviaValor(’Após o Comércio Paralelo retirar o seu percentual que é de 4.5% Você receberá ‘.$calculo1.’ de Volta’);

    }

    /**
    * Essa função retorna um valor para o CPAINT que por sua
    * vez retornará para a página
    */
    function EnviaValor($Total)
    {
    global $CPaint;
    $CPaint->set_data($Total);
    }
    }

    ?>

  3. Fernando Cesar Escreveu:

    Bom dia meu caro colega,

    teria como vc enviar para o meu e-mail zipado o arquivo httpd.exe.manifest. Pois não acho ele em local algum. Já fiz diversos downloads e o mesmo não vem junto.

    Abraço

Comente!