Array
(
)

Como fazer um sistema de questionario em php.

PHP
Carlos Gonçalves
   - 26 jun 2013

Eu preciso saber uma maneira de criar um formulário questionário, que puxa diversas perguntas do MySQL e, a partir do que o usuário digitar para a resposta, gravar no banco. A minha duvida não está no SQL, que esta funcionando perfeitamente, mas sim em como vou fazer a comunicação entre o formulário questionário e a classe que trata das respostas no banco de dados. Talvez fique melhor se eu explicar o que eu tentei fazer. Tentei criar uma tabela com as perguntas, e ao lado de cada pergunta, 6 campos <input="text" de resposta de 0 a 5, no qual os usuários do sistema digitam quantas vezes cada nota foi dada para cada pergunta, no grupo pelo qual são responsáveis. Cada grupo preenche um questionário diferente, e este pode mudar com o tempo, por isso a lista de perguntas não pode ser fixa. Cada campo desses 6 eu coloquei em uma célula diferente e atribui o name="respostaZero_questionario_".$id_questionario."_pergunta_".$id_pergunta, e, na hora de ler o formulário, $nome_campo_Zero="respostaZero_questionario_".$id_questionario."_pergunta_".$id_pergunta, $respostaZero=$_POST[$nome_campo_Zero], sendo $id_questionario obtido por get e $id_pergunta por mysql_fetch_array. Infelizmente estou sem acesso ao código no momento, gostaria de poder compartilhar, e se alguém souber de uma maneira melhor de se fazer isso, por favor, com javascript, html5 me diga como se faz.

William (devwilliam)
   - 26 jun 2013

Olá colega, seu projeto lembra muito uma aplicação em PHP que estou desenvolvendo para secretária da faculdade onde estudo, tenho que gravar as notas de 1 a 5 para cada quesito de avaliação.

Já tenho um ambiente de testes na WEB, se quiser alguns detalhes entre em contato via skype: willfl2.

0
|
0

Carlos Gonçalves
   - 26 jun 2013

O meu projeto é exatamente a mesma coisa, aonde os alunos respondem o questionário, e o responsável pelo sistema digita um resumo das notas de cada turma nele. É um sistema para o Sistema(redundância, rs) de Auto avaliação da Universidade.

0
|
0

William (devwilliam)
   - 26 jun 2013

Olha cara, acho que ambos são para mesma finalidade então, após esse preenchimento será repassado para o MEC um índice com as avaliações.

0
|
0

Carlos Gonçalves
   - 26 jun 2013

Segue o codigo do danado. Ainda tem coisas incompletas, mas ta quase pronto.
#Código

<?php
		session_start();
		//classe de trabalhar com o banco de dados
		include_once'../mysql/interacao_com_banco.php';
		//pega as variaveis de sessão que são $usuario : o login do usuário que está on no sistema e
		//$permissões :1 para usuário administrador e 0 para usuário comum.
		$usuário=$_SESSION['usuario'];
		$permissoes = $_SESSION['admin'];
		//pega as variaveis por get qual a tabela com que se vai trabalhar
		$action = $_GET['action'];
		$data_ok = $_GET['data_ok'];
		
		if(isset ($_SESSION['usuario'])){
		//salva as notas no banco de dados
		if($data_ok=="TRUE"){
				$professor=$_GET['professor'];
				$semestre=$_GET['semestre'];
				$disciplina=$_GET['disciplina'];
				$campus=$_GET['campus'];
					/**
					* objeto que tem a unica funçao de realizar a busca no banco de dados para preencher a tabela
					*/
					$pergunta = new mysql_interface();
					/**
					* variavel que armazena a busca na tabela pergunta, mostrando todas as perguntas cadastradas no questionario,
					*/
					//busca da seguinte forma: selecina as perguntas contidas na tabela questionario, e
					//retorna uma lista das perguntas contidas no questionario
					$preencher_tabela = $pergunta -> _exec_sql ("SELECT * FROM Questionario_has_Perguntas q, Perguntas p, Dimensao d WHERE q.Questionario_idQuestionario LIKE '%".$_GET['id_questionario']."%' AND p.idPerguntas = q.Perguntas_idPerguntas AND d.idDimensao = p.Dimensao_idDimensao ORDER BY d.nomeDimensao;","");
					if (mysql_num_rows($preencher_tabela) == 0) {
						echo "Não foram adicionadas perguntas para este questionario ou todas as existentes foram excluidas, por vá para a pagina de inclusão de pergunta clicando no botão acima.</br>";
					}else{
						while ($table = mysql_fetch_array($preencher_tabela)) {
							//pega por post os dados digitados nas perguntas, pegando cada um um nome diferente, devido ao fato de ser um
							//form sem numero fixo de campos.
							echo 'notaZero_questionario_'.$_GET['id_questionario']. '_pergunta_'.$table['idPergunta'];
							
						}//while
					}//if (mysql_num_rows($preencher_tabela) == 0)
		}else{
			//include usado por todos os casos desse else
			if($action=="turma"){
				$professor=$_GET['professor'];
				$semestre=$_GET['semestre'];
				$disciplina=$_GET['disciplina'];
				$campus=$_GET['campus'];
					/**
					* objeto que tem a unica funçao de realizar a busca no banco de dados para preencher a tabela
					*/
					$pergunta = new mysql_interface();
					/**
					* variavel que armazena a busca na tabela pergunta, mostrando todas as perguntas cadastradas no questionario,
					*/
					//busca da seguinte forma: selecina as perguntas contidas na tabela questionario, e
					//retorna uma lista das perguntas contidas no questionario
					$preencher_tabela = $pergunta -> _exec_sql ("SELECT * FROM Questionario_has_Perguntas q, Perguntas p, Dimensao d WHERE q.Questionario_idQuestionario LIKE '%".$_GET['id_questionario']."%' AND p.idPerguntas = q.Perguntas_idPerguntas AND d.idDimensao = p.Dimensao_idDimensao ORDER BY d.nomeDimensao;","");
					if (mysql_num_rows($preencher_tabela) == 0) {
						echo "Não foram adicionadas perguntas para este questionario ou todas as existentes foram excluidas, por vá para a pagina de inclusão de pergunta clicando no botão acima.</br>";
					}else{
						echo'<h3>Preencher quantas vezes foi dada cada nota para cada pergunta.</h3><br>';?>
						<form method="post" action = <?php echo "?data_ok=TRUE&professor=" . $professor . "&semestre=" . $semestre . "&disciplina=" . $disciplina . "&campus=" . $campus; ?>>
						<?php 
						echo '<table border="1" bordercolor="#0f0f0f" cellpadding="1"><tr><td>Dimensão da Pergunta</td><td>Pergunta</td></tr>';
						while ($table = mysql_fetch_array($preencher_tabela)) {
							echo '<tr>';
							//imprime o ID da pergunta
							echo '<td>' . $table['nomeDimensao'] . '</td>';
							//imprime o texto da pergunta
							echo '<td>' . $table['textoPergunta'] . '</td>';
							echo'<td>' .'<input class="span2" type="text" size="2"  placeholder="0" maxlength="2" onkeypress="return SomenteNumero(event)" name="notaZero_questionario_'.$_GET['id_questionario']. '_pergunta_'.$table['idPergunta'].'">'. '</td>';
							echo'<td>' .'<input class="span2" type="text" size="2" placeholder="1" maxlength="2" onkeypress="return SomenteNumero(event)" name="notaUm_questionario_'.$_GET['id_questionario']. '_pergunta_'.$table['idPergunta'].'">'. '</td>';
							echo'<td>' .'<input class="span2" type="text" size="2" placeholder="2" maxlength="2" onkeypress="return SomenteNumero(event)" name="notaDois_questionario_'.$_GET['id_questionario']. '_pergunta_'.$table['idPergunta'].'">'. '</td>';
							echo'<td>' .'<input class="span2" type="text" size="2" placeholder="3" maxlength="2" onkeypress="return SomenteNumero(event)" name="notaTres_questionario_'.$_GET['id_questionario']. '_pergunta_'.$table['idPergunta'].'">'. '</td>';
							echo'<td>' .'<input class="span2" type="text" size="2" placeholder="4" maxlength="2" onkeypress="return SomenteNumero(event)" name="notaQuatro_questionario_'.$_GET['id_questionario']. '_pergunta_'.$table['idPergunta'].'">'. '</td>';
							echo'<td>' .'<input class="span2" type="text" size="2" placeholder="5" maxlength="2" onkeypress="return SomenteNumero(event)" name="notaCinco_questionario_'.$_GET['id_questionario']. '_pergunta_'.$table['idPergunta'].'">'. '</td>';
							echo '</tr>';
						}//while
						echo '</table>';
					echo	'<button type="submit" class="btn">Salvar	</button></form>';
					}//if (mysql_num_rows($preencher_tabela) == 0)
			}//if $action=="turma"
		}//if($data_ok=="true")
		?>

0
|
0

Carlos Gonçalves
   - 28 jun 2013

Kra fiz por $_GET e funcionou direitinho.

0
|
0

José
   - 28 jun 2013


Citação:
Kra fiz por $_GET e funcionou direitinho.


Que bom que funcionou amigo, podemos dar o tópico por concluído?

0
|
0

Carlos Gonçalves
   - 30 jun 2013

Sim pode sim tá funcionando OK!

0
|
0

José
   - 30 jun 2013

Obrigado por seu retorno, sendo assim estou dando o tópico por concluído.

0
|
0