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çã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 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ã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);
});
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.
– Kenny Rafael