Do not save information in mysql when I click on one of the radioboxes in the form

Asked

Viewed 53 times

1

I have a form with several text fields, radiobox, selectbox, and I want to save the information in the table of the bank I use. However, I’m having a problem when I click on the first two radios boxes, and I can only save when I click on the third, detail that this radiobox, exibo via javascript other two radiosboxes and a text field.

I’ve tried many ways to reverse this, like testing with blocks ifs/elses ou switch and the problem continues. The problem occurs when I try to save the information of the participant and select the schooling, eg.: Radiobox with value of 1st Degree/2nd Degree.

1) The form I use in the project:

  <form method="post" class="registration-form" id="participanteForm">

      <div class="form-group">                                        
         <input type="text" name="participanteNome" placeholder="Nome completo" class="form-control">
      </div>                                                            

      <div class="form-group">                                      
            <input type="text" name="participanteOcupacao" placeholder="Ocupa&ccedil;&atilde;o" class="form-control">
      </div>      

      <div class="form-group">                                      
            <input type="text" name="participanteEmail" placeholder="Email" class="form-control">
      </div>

      <div class="form-group">                                      
            <input type="text" name="participanteIdade" placeholder="Idade" class="form-control" maxlength="2">
      </div>                              

      <div class="form-group">                                      
            <input type="text" name="participanteCidade" placeholder="Cidade" class="form-control">
     </div>

     <div class="form-group">                                       
            <input type="text" name="participanteUF" placeholder="UF" class="form-control" maxlength="2">
    </div>

    <div class="form-group">                                        
            <input type="text" name="participanteEndereco" placeholder="Endere&ccedil;o completo" class="form-control">
    </div>

    <div class="form-group">
       <label id="text">Estado Civil</label>
       <select class="form-control" name="participanteEstadoCivil">
            <!--<option>Selecione abaixo :</option>-->
            <option>Solteiro (a)</option> 
            <option>Casado (a)</option>
            <option>Divorciado (a)</option>                                   
       </select>
   </div>

   <div class="form-group">
       <label id="text">Sexo</label>
       <select class="form-control" name="participanteSexo">
               <!--<option>Selecione abaixo :</option>-->
               <option>Masculino</option> 
               <option>Feminino</option>                                   
       </select>
   </div>

   <hr>

   <div class="form-group">                                     
        <div class="panel panel-default">
             <div class="panel-heading clearfix">
                   <i class="icon-calendar"></i>
                   <h3 class="panel-title">Escolaridade</h3>
             </div>

             <div class="panel-body register-participant">
                  <label class="checkbox-inline">                <!--participanteChk1Grau participanteChk2Grau participanteChk3Grau--->
                         <input id="lbm-chk-grau1" value="1 Grau" name="escolaridade" type="radio" checked> 1&#186; grau
                  </label>                                       <!-- ckGrau1 -->
                  <label class="checkbox-inline">
                         <input id="lbm-chk-grau2" value="2 Grau" name="escolaridade" type="radio"> 2&#186; grau
                  </label>
                  <label class="checkbox-inline">
                         <input id="lbm-chk-grau3" value="3 Grau" name="escolaridade" type="radio"> 3&#186; grau
                  </label>
                  <div class="form-checkbox-participante">
                       <label class="checkbox-inline">                   <!--participanteChkCompl participanteChkImcompl-->
                              <input id="lbm-chk-compl" value="Superior Completo" name="superior" type="radio"> Superior Completo
                       </label>
                       <label class="checkbox-inline">
                              <input id="lbm-chk-imcopl" value="Superior Incompleto" name="superior" type="radio"> Superior Incompleto
                       </label>
                       <br><br>
                       <input type="text" name="participanteIES" placeholder="Nome da Institui&ccedil;&atilde;o" class="form-control" id="form-ies">                                              
                  </div>
             </div>
        </div>                                                                                                                                                                         
   </div>

   <hr>

   <div class="form-group">
        <label id="text">Pergunta Secreta</label>
        <select class='form-control' name="participantePergSecreta">
               <option>Selecione abaixo :</option>
               <option>Lugar onde morou at&eacute; os 10 anos de idade</option> 
               <option>Primeiro animal de estima&ccedil;&atilde;o</option>
               <option>Qual seu time de cora&ccedil;&atilde;o</option>
               <option>Super-H&eacute;roi favorito</option>
               <option>Disciplina favorita na escola</option>                                   
        </select>
   </div>

   <div class="form-group">
         <label id="text">Resposta</label>
         <input type="text" name="participanteRespSecreta" class="form-control" id="form-resposta"> 
   </div>

   <hr>

   <div class="form-group">
        <label id="text">Nome de Usuario</label>
        <input type="text" name="participanteUsuario" class="form-resposta form-control" id="form-resposta"> 
   </div>

   <div class="form-group">
        <label id="text">Senha de acesso</label>
        <input type="password" name="participanteSenha" class="form-resposta form-control" id="form-resposta"> 
   </div>

   <div class="container submit">
        <button type="submit" class="btn btn-link-2" name="btn-registro-participante" id="btn-registro-participante">Salvar Informa&ccedil;&otilde;es</button>                              
   </div>

</form>

2) How I try to save in the bank:

<?php

  function security_data($data)
  {
    $con=mysqli_connect("localhost","root","root","pentefino");

    $data = trim($data);
    $data = stripslashes($data);
    $data = strip_tags($data);
    $data = htmlspecialchars($data);
    $data = mysqli_real_escape_string($con,$data);

    return $data;    

}

 if ( !empty($_POST['btn-registro-participante']) ) {

    $nomeParticipante = security_data($_POST['participanteNome']);
    $ocupacao         = security_data($_POST['participanteOcupacao']);
    $idade            = security_data($_POST['participanteIdade']);
    $cidade           = security_data($_POST['participanteCidade']);
    $uf               = security_data($_POST['participanteUF']);
    $endereco         = security_data($_POST['participanteEndereco']);
    $estadoCivil      = security_data($_POST['participanteEstadoCivil']);
    $sexo             = security_data($_POST['participanteSexo']);
    $email            = security_data($_POST['participanteEmail']);

    $perguntaSecreta     =  security_data_2($_POST['participantePergSecreta']);
    $respostaSecreta     =  security_data_2($_POST['participanteRespSecreta']);

    $usuarioParticipante =  security_data_2($_POST['participanteUsuario']);
    $senhaAuxPartic      =  security_data_2($_POST['participanteSenha']);

    $senhaParticipante   = md5($senhaAuxPartic);

    /****************************************************************************/                  

    $escolaridade = $_POST['escolaridade'];
    $superior     = $_POST['superior'];        

    if ( isset($escolaridade) && $escolaridade == "1 Grau" ) {
           $nivelEscolaridade = $escolaridade;
    } else if ( isset($escolaridade) && $escolaridade == "2 Grau" ) {
                $nivelEscolaridade = $escolaridade;
    } else if (  isset($escolaridade) && $escolaridade == "3 Grau" )  
    {     
          $nivelEscolaridade = $escolaridade;
          if ( isset($superior) )
                $nivelSuperior = $superior;
                $IESParticipante = security_data_2($_POST['participanteIES']);
    }           


    if (    !empty($nomeParticipante)    && !empty($ocupacao)         && !empty($idade) 
         && !empty($cidade)              && !empty($uf)               && !empty($endereco)
         && !empty($estadoCivil)         && !empty($sexo)             && !empty($email)
         && !empty($perguntaSecreta)     && !empty($respostaSecreta)
         && !empty($usuarioParticipante) && !empty($senhaAuxPartic) 
         //&& !empty($escolaridade)          

       )
    {    

        // Abre a conexão com o BD
        $pdo = Database::connect();
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

        $sql  =  "INSERT INTO participantes(nome, ocupacao, sexo, estado_civil, dt_cadastro, cidade, uf, email, endereco, idade, pergunta_secreta, resposta, participante_usuario, participante_senha, escolaridade, escolaridade_detalhes, escolaridade_instituicao) "; 
        $sql .=  "VALUES(?, ?, ?, ?, NOW(), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; 

        $q = $pdo->prepare($sql);
        $q->execute(array($nomeParticipante,$ocupacao,$sexo,$estadoCivil,$cidade,$uf,$email,$endereco,$idade,$perguntaSecreta,$respostaSecreta,$usuarioParticipante,$senhaParticipante,$nivelEscolaridade,$nivelSuperior,$IESParticipante));                                                          

        //$sql  =  "INSERT INTO participantes(nome, ocupacao, sexo, estado_civil, dt_cadastro, cidade, uf, email, endereco, idade, pergunta_secreta, resposta, participante_usuario, participante_senha, escolaridade, escolaridade_detalhes, escolaridade_instituicao) "; 
        //$sql .=  "VALUES(?, ?, ?, ?, NOW(), ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; 

        //$q = $pdo->prepare($sql);
        //$q->execute(array($nomeParticipante,$ocupacao,$sexo,$estadoCivil,$cidade,$uf,$email,$endereco,$idade,$perguntaSecreta,$respostaSecreta,$usuarioParticipante,$senhaParticipante,$chkEscolaridade,$chkSuperior,$IESParticipante));                      

        header("Location: ./sucesso.php");                                                                                    
        Database::disconnect();
    }


}

3) BootstrapValidator input validators:

// Validar campos do pesquisador com a biblioteca bootstrapValidator
$(document).ready(function() {
    $('#participanteForm').bootstrapValidator({
        message: 'This value is not valid',

       feedbackIcons: {
         valid: 'glyphicon glyphicon-ok',
         invalid: 'glyphicon glyphicon-remove',
         validating: 'glyphicon glyphicon-refresh'
      },
     fields: {
        partcNome: {
                message: 'O nome do participante n&atilde;o &eacute; v&acute;lido',
                validators: {
                    notEmpty: {
                        message: 'O nome do participante &eacute; requerido e n&atilde;o pode estar vazio'
                    },
                    stringLength: {
                        min: 8,
                        max: 40,
                        message: 'O nome do participante deve conter de 8 at&eacute; 40 caracteres'
                    }
                }
        },
        partcOcupacao: {
            validators: {
                 notEmpty: {
                        message: 'A ocupa&ccedil;&atilde;o do participante &eacute; requerida e n&atilde;o pode estar vazia'
                 },
                 stringLength: {
                        min: 20,
                        max: 40,
                        message: 'A ocupa&ccedil;&atilde;o do participante deve conter  o min. de 20 e o max. de 40 caracteres'
                }
            }
        },
        partcEmail: {
            validators: {
                notEmpty: {
                    message: 'O email &eacute; requerido e n&atilde;o pode estar vazio'
                },
                emailAddress: {
                    message: 'Voce informou um endere&ccedil;o de email n&atilde;o v&aacute;lido'
                }
            }
        },
        partcIdade: {
            validators: {                                                                                                   
                digits: {
                    message: 'O campo idade somente pode conter valores num&eacute;ricos'
                }
            }
        },
        partcCidade: {
            validators: {
                 notEmpty: {
                        message: 'A cidade do participante &eacute; requerida e n&atilde;o pode estar vazia'
                 },
                 stringLength: {
                        min: 5,
                        max: 40,
                        message: 'A cidade do participante deve conter  o min. de 5 e o max. de 40 caracteres'
                }
            }
        },
        partcUF: {
            validators: {
               notEmpty: {
                  message: 'A UF do participante &eacute; requerida e n&atilde;o pode estar vazia'
               }
            }
        },
        partcEndereco: {
            validators: {
                 notEmpty: {
                        message: 'O endere&ccedil;o do participante &eacute; requerida e n&atilde;o pode estar vazia'
                 },
                 stringLength: {
                        min: 20,
                        max: 40,
                        message: 'O endere&ccedil;o do participante deve conter  o min. de 20 e o max. de 40 caracteres'
                }
            }
        },
        partcEstadoCivil: {
           validators: {
               notEmpty: {
                  message: 'O estado civil do participante &eacute; requerida e n&atilde;o pode estar vazia'
               }
            }
        },
        partcSexo: {
           validators: {
               notEmpty: {
                  message: 'O sexo do participante &eacute; requerida e n&atilde;o pode estar vazia'
               }
            }
        },
        partcRd1Grau: {
           validators: {
               notEmpty: {
                  message: 'O nivel de escolaridade do participante &eacute; requerida e n&atilde;o pode estar vazia'
               }
            }
        },
        partcRd2Grau: {
           validators: {
               notEmpty: {
                  message: 'O nivel de escolaridade do participante &eacute; requerida e n&atilde;o pode estar vazia'
               }
            }
        },
        partcRd3Grau: {
           validators: {
               notEmpty: {
                  message: 'O nivel de escolaridade do participante &eacute; requerida e n&atilde;o pode estar vazia'
               }
            }
        },
        partcRdSuperior: {
            validators: {
               notEmpty: {
                  message: 'O nivel de escolaridade (completo) do participante &eacute; requerida e n&atilde;o pode estar vazia'
               }
            }
        },
        partcRdImcompl: {
            validators: {
               notEmpty: {
                  message: 'O nivel de escolaridade (incompleto) do participante &eacute; requerida e n&atilde;o pode estar vazia'
               }
            }
        },
        partcIES: {
            validators: {
                 notEmpty: {
                        message: 'A IES do participante &eacute; requerida e n&atilde;o pode estar vazia'
                 },
                 stringLength: {
                        min: 20,
                        max: 40,
                        message: 'A IES do participante deve conter  o min. de 20 e o max. de 40 caracteres'
                }
            }
        },
        partcPergSecreta: {
            validators: {
               notEmpty: {
                  message: 'A pergunta secreta do participante &eacute; requerida e n&atilde;o pode estar vazia'
               }
            }
        },
        partcRespSecreta: {
            validators: {
               notEmpty: {
                  message: 'A resposta secreta do participante &eacute; requerida e n&atilde;o pode estar vazia'
               }
            }
        },
        /*****************************************************************************************
        lbm_pesqd_cpf: {
            validators: {
                callback: {
                    message: 'CPF Invalido',
                    callback: function(value) {
                             //retira mascara e nao numeros       
                             lbm_pesqd_cpf = value.replace(/[^\d]+/g,'');    
                             if(lbm_pesqd_cpf == '') return false; 

                             if (lbm_pesqd_cpf.length != 11) return false;

                             // testa se os 11 digitos são iguais, que não pode.
                             var valido = 0; 
                             for (i=1; i < 11; i++){
                              if (lbm_pesqd_cpf.charAt(0)!=lbm_pesqd_cpf.charAt(i)) valido =1;
                             }
                             if (valido==0) return false;

                             //  calculo primeira parte  
                             aux = 0;    
                             for (i=0; i < 9; i ++)       
                              aux += parseInt(lbm_pesqd_cpf.charAt(i)) * (10 - i);  
                              check = 11 - (aux % 11);  
                              if (check == 10 || check == 11)     
                               check = 0;    
                              if (check != parseInt(lbm_pesqd_cpf.charAt(9)))     
                               return false;      

                             //calculo segunda parte  
                             aux = 0;    
                             for (i = 0; i < 10; i ++)        
                              aux += parseInt(lbm_pesqd_cpf.charAt(i)) * (11 - i);  
                             check = 11 - (aux % 11);  
                             if (check == 10 || check == 11) 
                              check = 0;    
                             if (check != parseInt(lbm_pesqd_cpf.charAt(10)))
                              return false;       
                             return true;              
                    }
                }, //callback
                notEmpty: {
                    message: 'O CPF &eacute; requerido e n&atilde;o pode estar vazio'
                }
            }                
        },***************************************************************************************/

        partcUsuario: {
            message: 'O usuario n&atilde;o &eacute; v&acute;lido',
            validators: {
                notEmpty: {
                    message: 'O usuario &eacute; requerido e n&atilde;o pode estar vazio'
                },
                stringLength: {
                        min: 6,
                        max: 20,
                        message: 'O nome de us&uacute;ario deve conter 6 e no m&aacute;x. 20 caracteres'
                },
                regexp: {
                    regexp: /^[a-zA-Z0-9_\.]+$/,
                    message: 'O nome de us&uacute;ario deve conter uma combina&ccedil;&atilde; de caracteres alfan&uacute;mericos, ponto e sublinhado'
                },   
                different: {
                    field: 'partcSenha',
                    message: 'O usuario e a senha n&atilde;o podem ser os mesmos'
                }
            }
        },
        partcSenha: {
            validators: {
                notEmpty: {
                    message: 'A senha &eacute; requerida e n&atilde;o pode estar vazia'
                },
                different: {
                    field: 'partcUsuario',
                    message: 'A senha n&atilde;o pode ser igual ao seu usuario'
                }
            } // validators
        } // field password            
    } // fields
});

$('#participanteForm').bootstrapValidator('resetForm', true);
});
  • Diego, it is not exactly clear which are the radioboxes that are in trouble or which you have to click to save, besides, if it is loaded content with javascript you should post the code, because it may also be impacting. Also, if possible it would be good to identar better this html for better visualization.

1 answer

1

You should give a value to options like this:

<select class="form-control" name="participanteEstadoCivil">
        <!--<option>Selecione abaixo :</option>-->
        <option value="solteiro">Solteiro (a)</option> 
        <option value="casado">Casado (a)</option>
        <option value="divorciado">Divorciado (a)</option>                                   
</select>

Browser other questions tagged

You are not signed in. Login or sign up in order to post.