Jump to content
  • 0
CrysMorais

Como verificar se no questionário tem perguntas do tipo 'radio' ou 'checkbox'

Question

Boa tarde pessoal,

Sou nova por aqui e também sou nova na programação, e gostaria da ajuda de alguém, se possível.

Eu montei uma pagina que cria questionários, onde o usuário  pode criar perguntas com 4 tipos de respostas (Radio, Checkbox, Text e Number).

Porém não sei como verificar se no questionário, foi criado pelo menos uma pergunta de cada tipo.

 

Montei assim:

 

<select name="tipoconsquestao" id="tipoconsquestao" style="color:#000000; font-size:9px; width:130px; ">
             <option value="1" selected >Única escolha</option>
             <option value="2">Múltipla escolha</option>
             <option value="3">Texto livre</option>
             <option value="4">Número livre</option>
</select>

 

Criei um bloco desses para cada tipo de pergunta:

 

<%if (ArrayQuestions(6,i) = 1) then%>

<td width="8%" align=center>
       <input name="<%=conta_grupo%>" data-sm-tipo="<%=ArrayQuestions(6,i)%>" data-sm-vrmaxquestao="<%=ArrayQuestions(11,i)%>" data-sm-questao-numero="<%=ArrayQuestions(2,i)%>"  data-sm- alternativa="<%=ArrayQuestions(3,i)%>" data-sm-questao="<%=conta_grupo%>" id="<%=conta_Alternativa%>" type="radio" value="<%=ArrayQuestions(3,i) %>" <%if ArrayQuestions(4,i) = 1 then response.write "checked"%>/>
</td>
<td width="92%" >&nbsp;&nbsp;&nbsp;<b><%=ArrayQuestions(1,i)%><b></td>
<% end if %>

 

 

Recebo aqui:

 

        var arrayquestoes = [];
        var arrayalternativas = [];
        var questionarioRadio = [];
        var questionarioCheck = [];
        var questionarioText = [];

        var questionarioNum = [];

 

for (var i = 1; i <= n_grupos; i++) {

            var countRadio = 0;
            var countCheck = 0;
            var countText = 0;
            var countVrText = 0;
            var countVariosVrText = 0;
            var countNum = 0;

            
            $("[data-sm-questao='" + i + "']").each(function (index, value) {

                var questao = $(this).attr("data-sm-questao-numero");
                var alternativa = $(this).attr("data-sm-alternativa");
                //alert(alternativa);

                var vralternativa = $(this).val();
                var tipoalternativa = $(this).attr("data-sm-tipo");
                

                
                vrmaxtotalizacao = $(this).attr("data-sm-vrmaxquestao");
                
                
                arrayquestoes[i - 1] = questao;
    
                //==============================================================================================================    
                // Verifica todos os campos tipo questão 1 (Radiobuttons) e carrega o array questionarioRadio com true ou false
                //==============================================================================================================  

                if (eval(tipoalternativa) == 1)
                {
                    if (this.checked) {
                        questionarioRadio[countRadio] = true;

                        if (textoalternativas == '') {
                            textoalternativas = questao + '|' + alternativa + '|' + 1;
                        }
                        else {
                            textoalternativas = textoalternativas + ';'+ questao + '|' + alternativa + '|' + 1;
                        }
                    }
                    else
                    {
                        questionarioRadio[countRadio] = false;
                    }

                    countRadio = countRadio + 1;
                    //console.log(cont);
                    
                }
 

 

    Faço a validação aqui:

 

          

 for (var k = 0; k < questionarioRadio.length; k++) {

            if (questionarioRadio[k])
            {
                if (!saidafinalRadio)
                {
                    saidafinalRadio = true;
                }
            }
        }

        if (questionarioRadio.length == 1)
        {
            saidafinalRadio = true;
        }

}

 

if (!saidafinalRadio)
        {
            alert('Por favor responda todas as questões de única escolha.');
            return;
        }

 

 

E mando para o banco de dados.

 

 

 

Share this post


Link to post
Share on other sites

2 answers to this question

Recommended Posts

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By David Samu
      let total_entradas = 3//ai virar total de colunas
      let total_linhas   = 0
      let tabela         = []
      for(let coluna=total_entradas; coluna>0; coluna-- )
      {
          let repeticao = 1
          for(let x=1; x<=coluna; x++)
          {
              repeticao = (2 * repeticao)
          }
          if( total_linhas === 0 )
          {
              total_linhas = repeticao
          }
          if(repeticao != 1) 
          {
              repeticao = (repeticao / 2)
          }
          let valores = []
          let vdd     = 1
          let lastBoo = 'v'
          for( let linha=0; linha < total_linhas; linha++ )
          {
              if( vdd <= repeticao )
              {
                  val = lastBoo
              }
              else
              {
                  if( lastBoo == 'v' )
                  {
                      lastBoo = 'f'  
                  }
                  else 
                  {
                      lastBoo = 'v'
                  }
                  val = lastBoo
                  vdd=1
              }
              vdd++
              valores.push(val)
          }
          tabela[ (coluna - 1) ] = valores   
      }
      let countCol = 1
      for(let coluna=tabela.length - 1; coluna>=0; coluna--)
      {
          console.log("Coluna ", countCol++)
          for(let linha = 0; linha < tabela[coluna].length; linha ++)
          {
              console.log( tabela[coluna][linha] )
          }
      }
    • By andrelimaverde
      Pessoal preciso de uma ajuda, desde já agradeço à todos.
      "Site teste, estudos..."
      Tenho um formulário com 3 etapas, ele está trabalhando em php normalmente e salvando os dados preenchidos em .txt (para testes apenas).
      Vamos lá, nas 3 etapas o form está com action="1.php" (2.php,  3.php) e method="post". [Não vou colocar muito código para simplificar, pois é um formulário básico fácil de entender]
      Exemplo:  Pagina 1 - envia para action '1.php'
      Nome: 
      Telefone:
      <input type="submit" value="Continuar">
      (
       O arquivo 1.php armazena os dados e redireciona => header( 'Location:Pagina2.php' ) ;   
       Assim como os outros php's
      )
      Pagina 2 - action 2.php armazena os dados e redireciona => header( 'Location:Pagina3.php' ) ; 
      Cidade:
      Endereço:
      <input type="submit" value="Continuar">
       
      A questão está na 3ª página
      Página 3 -
      Email:
      (Preciso que após preencher o campo da página 3 no caso "Email:",  ao clicar no botão, neste caso não sei se seria um submit ou button. O formulário não redirecionar para pagina 4, ao clicar ele enviar e salvar normalmente, mas aparecer um novo input na mesma pagina por Exemplo:"Twitter:"  ) 
      No caso preciso que ele não redirecione , gostaria de colocar um gif de carregando por 15 segundos por exemplo como se estivesse processando as informações... e em seguida ele apresentar o novo input do "Twitter:" , onde ai sim enviaria normalmente...
    • By Wilson Fernandes
      Olá! Preciso de ajuda para começar a construir gráficos de funções quadráticas em plano cartesiano. Já procurei várias fontes, mas nenhuma explica como construir um bom gráfico.
    • By luigiferrari
      Criei um Form para fazer Cadastro, sempre que o usuário clica no botão para cadastrar é enviado um e-mail para o ADM.
      O meu problema é o seguinte, quando tem algum campo não preenchido e o usuário clica em cadastrar, o email é enviado e só depois o alert do campo obrigatório aparece.
      Gostaria de um JS que desativa o botão cadastrar até todos os campos estarem preenchidos corretamente.
      E também que quando a pessoa clicasse no Botão cadastrar, ele iria desativar novamente, para evitar o usuário de clicar mais de uma vez e acabar enviando mais emails...
       
      Segue o meu form...
       
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.