Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde...
E o seguinte, estou tentando montar um sistema de questionario. Onde estou cadastrando as perguntas e respostas num banco de dados, e estou fazendo um select delas para o usuario, onde tem 3 opções quer serão marcadas por radio buttons.
Sera em torno de 10 perguntas, que esta sendo listadas por um while repetindo os formularios com as perguntas e respostas.
Ai apareceu as duvidas e travei ai, queria ver com vcs uma forma correta de esta fazendo isso, ou estou no caminho certo.
Porque, criando os formularios separadamente terei q colocar um botao de votar em todos, e se colocar apenas um form, tipo so posso escolher uma opção apenas, pq o msm possibilita apenas um radio marcado, ou seja, se eu marcar na primeira pergunta, e vou marcar na segunda pergunta, a primeira desmarca, e em cada pergunta tem q haver uma opção marcada.
Ai vem a duvida na hora de contabilizar,pretendo q seja salvos em um banco pra gerar um grafico futuro de cada pergunta.
se alguem puder me orientar ai, agradeço.
flwss
Bem como o AlexandreMota falou mas os grupos nao tem limite de 3 podem ser inumeras.
e quando tiver ex 3 radios com o mesmo name ex :
<input type=radio name=pergunta1 value=1>1
<input type=radio name=pergunta1 value=2>2
<input type=radio name=pergunta1 value=3>3
No caso o "pergunta1". se voce primeiro marcar o 1 e depois clicar no 3. o 1 vai ser desmarcado e o 3 marcado agora se for:
<input type=radio name=pergunta1 value=1>1
<input type=radio name=pergunta2 value=2>2
<input type=radio name=pergunta3 value=3>3
Ai Muda tudo e provavelmente vai dar erros :( .
Continua indo deste jeito .
Estão me ajudando bastante, vlw...
Mas venho pedir ajuda de novo.
Gostaria de um meio para ta validando cada grupo de respostas, o usuario é obrigado escolher uma opção em cada grupo, testei alguns encontrado na net mas nao deu certo nao,ele ta passando pra parte onde colhe os dados.
Ai como estou buscando as perguntas do banco de dados, estão tudo dentro de um unico formulario, mas ai pensei, cada perguntas e as respostas estao dentro de uma tabela ai coloquei um id nela, ai eu valido a tabela em sim e nao o form.
Como posso ta fazendo isso.
vlwss
Não entendi o que você quer fazer. Você quer ter certeza que o usuário respondeu todas as perguntas antes de enviar o formulário pro PHP conferir os dados? Se for isso, tem que usar Javascript.
O seguinte, eu encontrei uma forma pra da validando se esta ou nao marcado cada pergunta. So que a pagina esta passando mesmo com uma pergunta sem responder.
Tipo num teste que estou fazendo tenho 3 perguntas com 3 respostas cada uma, se eu deixo de responder alguma ele me informa qual deixei sem resposta, mas ele ta passando pra proxima pagina.
$(document).ready(function(){
$("#vota").click(function(){
if( $("#form input[name=pergunta<?php echo $id;?>]:radio").is(':checked')) {
//alert("Está activado");
} else {
alert("A Pergunda <?php echo $id;?> não está respondida!");
}
});
});
estou usando essa função do JQuery;ha pouco tempo eu fiz um bem parecido do que voce esta fazendo, so que tinha 4 linhas a mais...eu fiz da seguinte maneira :
<?php
$ip = $_SERVER['REMOTE_ADDR'];
if(isset($_POST['submit']) && $_POST['submit'] == 'Palpitar'){
unset($_POST['submit']);
$c = 0; if(count($_POST) != '14'){
for($i=1; $i<=14; $i++){
if(!array_key_exists($i, $_POST)){
$estilo .= "#k{$i} > td, ";
}else{ switch ($_POST[$i]){
case 'c1': $v = 0; break; case 'cx' : $v = 1; break; case 'c2': $v= 2; break;
} $tem .= "document.getElementsByName('$i')[$v].checked = true; ";
}
}
}else{ $cd = 0; foreach ($_POST as $key => $value){
$v = $value ." +1"; if(mysql_query("UPDATE dados SET $value={$v} WHERE id='{$key}'")){
$cd++;
}else{ die(mysql_error());
}
} if($cd == 14){
if(mysql_query("INSERT INTO `dado`.`padrao` (`ip`) VALUES ('{$ip}')")){
header("location: /index.php");
}
}
}
} ?>Acredito que o botão votar seja um botão do tipo submit. Se for, com certeza é esse o problema. Você faz a verificação mas não tem como impedir que o formulário seja enviado dessa forma. Pra que funcione da maneira que você quer, precisa ser usado o evento submit do formulário, e não o click do botão. E incluir um return false abaixo da mensagem de que a pergunta não foi respondida pra que o jquery entenda que não é pra deixar enviar o formulário.
$(document).ready(function(){
$("#**iddoformulario**").**submit**(function(){
if( $("#form input[name=pergunta<?php echo $id;?>]:radio").is(':checked')) {
//alert("Está activado");
} else {
alert("A Pergunda <?php echo $id;?> não está respondida!");
**return false;**
}
});
});Boa noite, pessoal;
To precisando de uma orientação aqui.
Eu to cadastrando as perguntas dinamicamente, ate ai tudo bem. As respostas são por radio button. To com problema na hora de colher as respostas com o post, como ta sendo dinamico, nao sei bem qto de perguntas vao ter. Como posso ta fazendo isso. Dei uma pesquisada para fazer com array, mas nao to conseguindo implementar, se alguem puder me ajudar.
Flwss
>
Boa noite, pessoal;
To precisando de uma orientação aqui.
Eu to cadastrando as perguntas dinamicamente, ate ai tudo bem. As respostas são por radio button. To com problema na hora de colher as respostas com o post, como ta sendo dinamico, nao sei bem qto de perguntas vao ter. Como posso ta fazendo isso. Dei uma pesquisada para fazer com array, mas nao to conseguindo implementar, se alguem puder me ajudar.
Flwss
Voce pode usar o count(); para contar os indices do array... mais qual a sua duvida ?
c viu o meu post de cima ? dei o serviço pronto é so dar uma analizadas e deixar do jeito que queres...
Pra que seja possível usar vários radio buttons selecionando 1 em grupos de 3, é só colocar o mesmo nome nos 3 de cada pergunta. Por exemplo:
Quanto é 1 + 1?
Quanto é 2 + 2?
E assim por diante.
E na hora de pegar os dados é só usar o nome dos radios de cada pergunta: $_POST['pergunta1'], $_POST['pergunta2'], etc.