Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Felipe Paz

Javascript Selecionar dado com mais de um parâmetro

Recommended Posts

E aí gurizada, beleza? Anteriormente fiz um post onde citava o caso de filtar dados a partir de um select na tabela. Pois bem, revisando o que necessito e entendo isso, basicamente o que o usuário irá fazer é selecionar uma option no select, e clicar no input radio correspente.

 

Exemplo:

O select possui

<select>
  <option value="0">Mostrar todos</option>
  <option value="1">Contas a Pagar</option>
  <option value="2">Contas a receber</option>
</select>

E mais três input radio: 

<input type="radio" id="dia"> Dia
<input type="radio" id="mes"> Mês
<input type="radio" id="ano"> Ano

Eu preciso que, quando o usuário selecionar o tipo de conta no select e clicar no input correspondente ao período, a tabela mostre apenas esses valores.

Ex: Contas a pagar - dia (data atual).

A tabela vai mostrar todos os valores que sejam contas a pagar na data de hoje.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Felipe Paz

 

Pelo que entendi, você pode fazer isso usando o ajax combinado com um switch case.

 

Desta maneira:

 

HTML:

<form id="contas">
<select name="tipoConta">
  <option value="0">Mostrar todos</option>
  <option value="1">Contas a Pagar</option>
  <option value="2">Contas a receber</option>
</select>

<input type="radio" name="escolha" id="dia" value="dia"> Dia
<input type="radio" name="escolha" id="mes" value="mes"> Mês
<input type="radio" name="escolha" id="ano" value="ano"> Ano
</form>

jQuery:

$(document).ready(function(){
   
   $('input[type=radio][name=escolha]').on('change', function() {
     
     var dados = $('#contas').serialize();
     switch($(this).val()) {
         case 'dia':
             $.ajax({
                  url: 'processaDados.php',
                  dataType: 'HTML',
                  method: 'GET',
                  data:  dados
             }).done(function(retorno){
                   $('#div_onde_você_vai_mostrar').html(dados); 
             });  
             break;
         case 'mes':
             $.ajax({
                  url: 'processaDados.php',
                  dataType: 'HTML',
                  method: 'GET',
                  data:  dados
             }).done(function(retorno){
                   $('#div_onde_você_vai_mostrar').html(dados); 
             });  
             break;
         case 'ano':
             $.ajax({
                  url: 'processaDados.php',
                  dataType: 'HTML',
                  method: 'GET',
                  data:  dados
             }).done(function(retorno){
                   $('#div_onde_você_vai_mostrar').html(dados); 
             });  
             break;    
     }
});

});

Veja um exemplo online:  https://jsfiddle.net/dife/cknsmwmc/1/

 

Ali no JSFiddle, não tem como submeter o form via ajax, por isso mostrei inserindo o valor da serialização em um elemento div, para você ver o que seria enviado através do GET ao processaDados.php.

 

Só fica faltando ali, como você vai definir os dias, anos ou meses.

Por sugestão, crie um campo para o usuário entrar com um valor, seja de dia, mês ou ano.

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • @DiF Entendi perfeitamente tua sugestão e, pra mim, era seria a única e mais fácil alternativa, mas aí surge um problema. A empresa q eu to trabalhando não trabalha com ajax. Todas as requisões são feitas em input de formulários. Por isso, eu precisaria exatamente disso que você sugeriu mas sem ajax. Pegando os index das colunas, aplicando classes pra fazer o filtro, já com a tabela  toda carregada. Toda a filtragem seria totalmente client-side.

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    @Felipe Paz Nesse caso, é meio complicado mesmo. Porque razão não usam ajax? O ajax não necessariamente pode ser feito em jQuery, pode ser em javascript puro(mais difícil)

     

    Não consigo pensar em outra forma de fazer isso, sem pelo menos usar o ajax. 

    Dá para fazer de duas formas,  uma por ajax e PHP  e outra só com ajax e jQuery

     

    Escrevi um artigo sobre como fazer em ajax e php

    CODER DIF! Filtro de dados com checkbox no php e ajax

     

    Talvez se você pensar em uma gambiarra usando campos HIDDEN.. talvez possa achar uma solução

    • Obrigado 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Sei lá, @DiF, só sei que é assim. E como nunca tinha trabalha em empresa ainda com programação, só por fora, várias dúvidas vem surgindo, coisas que eu nem imaginava antes porque não era necessário. Mas como sempre, valeu imensamente a ajuda.

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário






    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

    Direitos autorais

    Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

    ×