I have a form with several text fields, radiobox, selectbox,
and I want to save the information in the table of the bank that I use. But 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 in this radiobox
, display through the javascript other two radiosboxes
and a text field.
I have tried in several ways to reverse this, such as testing with ifs/elses ou switch
blocks and the problem continues. The problem happens when I try to save the information of the participant and I select the schooling, eg: Radiobox with value of 1º 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çã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ç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º grau
</label> <!-- ckGrau1 -->
<label class="checkbox-inline">
<input id="lbm-chk-grau2" value="2 Grau" name="escolaridade" type="radio"> 2º grau
</label>
<label class="checkbox-inline">
<input id="lbm-chk-grau3" value="3 Grau" name="escolaridade" type="radio"> 3º 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çã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é os 10 anos de idade</option>
<option>Primeiro animal de estimação</option>
<option>Qual seu time de coração</option>
<option>Super-Hé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ções</button>
</div>
</form>
2) How do I try to save to 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) Input validators with bootstrapValidator:
// 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ão é v´lido',
validators: {
notEmpty: {
message: 'O nome do participante é requerido e não pode estar vazio'
},
stringLength: {
min: 8,
max: 40,
message: 'O nome do participante deve conter de 8 até 40 caracteres'
}
}
},
partcOcupacao: {
validators: {
notEmpty: {
message: 'A ocupação do participante é requerida e não pode estar vazia'
},
stringLength: {
min: 20,
max: 40,
message: 'A ocupação do participante deve conter o min. de 20 e o max. de 40 caracteres'
}
}
},
partcEmail: {
validators: {
notEmpty: {
message: 'O email é requerido e não pode estar vazio'
},
emailAddress: {
message: 'Voce informou um endereço de email não válido'
}
}
},
partcIdade: {
validators: {
digits: {
message: 'O campo idade somente pode conter valores numéricos'
}
}
},
partcCidade: {
validators: {
notEmpty: {
message: 'A cidade do participante é requerida e nã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 é requerida e não pode estar vazia'
}
}
},
partcEndereco: {
validators: {
notEmpty: {
message: 'O endereço do participante é requerida e não pode estar vazia'
},
stringLength: {
min: 20,
max: 40,
message: 'O endereço do participante deve conter o min. de 20 e o max. de 40 caracteres'
}
}
},
partcEstadoCivil: {
validators: {
notEmpty: {
message: 'O estado civil do participante é requerida e não pode estar vazia'
}
}
},
partcSexo: {
validators: {
notEmpty: {
message: 'O sexo do participante é requerida e não pode estar vazia'
}
}
},
partcRd1Grau: {
validators: {
notEmpty: {
message: 'O nivel de escolaridade do participante é requerida e não pode estar vazia'
}
}
},
partcRd2Grau: {
validators: {
notEmpty: {
message: 'O nivel de escolaridade do participante é requerida e não pode estar vazia'
}
}
},
partcRd3Grau: {
validators: {
notEmpty: {
message: 'O nivel de escolaridade do participante é requerida e não pode estar vazia'
}
}
},
partcRdSuperior: {
validators: {
notEmpty: {
message: 'O nivel de escolaridade (completo) do participante é requerida e não pode estar vazia'
}
}
},
partcRdImcompl: {
validators: {
notEmpty: {
message: 'O nivel de escolaridade (incompleto) do participante é requerida e não pode estar vazia'
}
}
},
partcIES: {
validators: {
notEmpty: {
message: 'A IES do participante é requerida e nã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 é requerida e não pode estar vazia'
}
}
},
partcRespSecreta: {
validators: {
notEmpty: {
message: 'A resposta secreta do participante é requerida e nã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 é requerido e não pode estar vazio'
}
}
},***************************************************************************************/
partcUsuario: {
message: 'O usuario não é v´lido',
validators: {
notEmpty: {
message: 'O usuario é requerido e não pode estar vazio'
},
stringLength: {
min: 6,
max: 20,
message: 'O nome de usúario deve conter 6 e no máx. 20 caracteres'
},
regexp: {
regexp: /^[a-zA-Z0-9_\.]+$/,
message: 'O nome de usúario deve conter uma combinaçã de caracteres alfanúmericos, ponto e sublinhado'
},
different: {
field: 'partcSenha',
message: 'O usuario e a senha não podem ser os mesmos'
}
}
},
partcSenha: {
validators: {
notEmpty: {
message: 'A senha é requerida e não pode estar vazia'
},
different: {
field: 'partcUsuario',
message: 'A senha não pode ser igual ao seu usuario'
}
} // validators
} // field password
} // fields
});
$('#participanteForm').bootstrapValidator('resetForm', true);
});