PHP - Problemas con Checkbox e Insert

 
Vista:
Imágen de perfil de Beto

Problemas con Checkbox e Insert

Publicado por Beto (5 intervenciones) el 27/03/2015 00:17:17
Buenas tardes a todos

Espero puedan ayudarme con mi siguiente duda,

Estoy realizando un programa de encuestas en PHP, el cual me permite agregar varias preguntas para que despues puedan ser llenadas.

Mi problema viene cuando ya tengo cargadas las preguntas, algunas son de opcion multiple (checkbox).

Es decir les pongo el ejemplo
Pregunta 1
opcion a
opcion b
opcion c


pregunta 2
opcion a
opcion b
opcion c

Estos datos los obtiene a traves de un While, y me muestra todo perfecto, las preguntas que cargo las muestra en orden, mi problema viene cuando quiero insertar las opciones seleccionadas de pregunta a y pregunta b.

Para mostrar el Check box utilizo el siguiente codigo:
1
echo "<input name=respuestan[] type=checkbox value=".$row1[6]." />".$row1[6]." <br />";

Y para enviar la informacion a traves del formulario estoy utilizando.

1
2
3
4
5
6
7
8
9
<?php
if(isset($_POST['enviar'])){
    for($i=0;$i<count($_POST['respuestan']);$i++) {
  echo " ".$_POST['respuestan'][$i] . '<br>';
}
 
    }
 
?>

Al momento de Realizar esto, lo que hace es que me arroja las opciones mostradas correctamente es decir si seleccion A y B de la Pregunta uno y C de la pregunta 2, me arroja A B C, lo que yo deseo hacer es que, me detecte a que pregunta pertenece la respuesta y me permita guardarla junto a esa pregunta.

Que me imprima algo asi como pregunta 1 A,B y Pregunta 2 C

Espero haberme explicado claramente

Saludos a todos
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Problemas con Checkbox e Insert

Publicado por xve (6935 intervenciones) el 27/03/2015 10:45:04
Hola Beto, entiendo que el problema que tienes, es que en todos los input estas utilizando la misma variable respuestan

Porque no pones una variable diferente cada grupo de respuestas?... por ejemplo, las respuesta a la pregunta uno, puedes poner respuestas1, la 2 respuestas2, ...

De esta manera, con un solo bucle podrás recorrer todas las respuestas... y sabrás exactamente de que pregunta es cada respuesta...

No se si me he explicado bien... coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Beto

Problemas con Checkbox e Insert

Publicado por Beto (5 intervenciones) el 27/03/2015 17:57:59
Hola Gracias por tu respuesta

El problema es que si te fijas los datos del input vienen a traves de un While ya que se obtienen estos datos a traves de una consulta de MySql.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Beto

Problemas con Checkbox e Insert

Publicado por Beto (5 intervenciones) el 28/03/2015 19:54:25
Claro aqui dejo el codigo completo

El archivo se llama contestar-encuesta02.php y lo explico un poco:
Lo primero que hace es checar si el nivel es de Empleado para poder contestar la encuesta, despues de esto, hace un While para buscar en la tabla PREGUNTAS, ya que encontro las preguntas, existe otra tabla llamada ENCUESTASP donde se encuentran las respuestas a cada pregunta, les anexo imagenes al final de mis tablas,

La busqueda basicamente se hace relacionando el numero de pregunta que seria nuestro identificador, hasta aqui todo lo hace de manera correcta.

Mi problema viene al momento de querer guardar los datos de cada respuesta.

Lo pongo como un ECHO para mostrar, antes de guardar quiero primero hacer pruebas de que me guarde todo de manera correcta.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<?php
@session_start();?>
<?php
	include_once "conexion.php";
	if($_SESSION['nivel'] == "Empleado"){
		$usuario = $_SESSION['username'];
		$encuesta = $_SESSION['encuesta'];
		}
		else {
		echo '<script type="text/javascript">window.location.href="index.php";</script>';
		echo "Debes estar logeado para poder acceder a esta Area";
		}
 
        ?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ProEs.Net - Sistema de Encuestas</title>
</head>
 
<body>
     <?php
print("Bienvenido ");
print($_SESSION["nombre"]);
print("<br />Id Encuesta: ");
print($encuesta);
?></font><br /><br />
<form action="" method="post">
     <?php
    $query = mysql_query("SELECT * FROM preguntas WHERE id_encuesta='$encuesta'") or die(mysql_error());
 
while ($row = mysql_fetch_row($query)){
 
       $pregunta = $row[3];
	   $npregunta = $row[2];
	   echo $row[2].") ".$row[3]."<br />";
	   $query1 = mysql_query("SELECT * FROM encuestasp WHERE npegunta='$npregunta' and id_encuesta='$encuesta'") or die(mysql_error());
	   while ($row1 = mysql_fetch_row($query1)){
	   if($row1[5] == "Opcion Multiple varias respuestas"){
		   echo "<input name=respuestan[] type=checkbox value=".$row1[6]." />".$row1[6]." <br />";
		   ?>
           <?php
	   }
	   else{
		   if($row1[5] == "Opcion Multiple una sola Respuesta"){
		   ?>
<input name="radioresp<?php echo $npregunta; ?>" type="radio" value=<?php echo $row1[6] ?> />
           <?php
		   echo $row1[6]."<br />";
		   }
		   else{
		   if($row1[5] == "Calificar del 1 al 10"){
			  ?>
<input name="radioresp1" type="radio" value=1 />1
<input name="radioresp1" type="radio" value=2 />2
<input name="radioresp1" type="radio" value=3 />3
<input name="radioresp1" type="radio" value=4 />4
<input name="radioresp1" type="radio" value=5 />5
<input name="radioresp1" type="radio" value=6 />6
<input name="radioresp1" type="radio" value=7 />7
<input name="radioresp1" type="radio" value=8 />8
<input name="radioresp1" type="radio" value=9 />9
<input name="radioresp1" type="radio" value=10 />10<br /><br />
              <?php
		   }
		   else{
		   if($row1[5] == "Respuesta Abierta"){
		   ?>
		    <textarea name="respuesta" cols="30" rows="5"></textarea><br /><br />
           <?php
		   }
		   }
		   }
	   }
 
 
	   }
}
 
	?><input type="submit" name="enviar" value="Registrar Encuesta" /></form><br /><br />
    <?php
if(isset($_POST['enviar'])){
	for($i=0;$i<count($_POST['respuestan']);$i++) {
  echo " ".$_POST['respuestan'][$i] . '<br>';
}
 
	}
 
?>
</body>
</html>

Esta es la tabla EncuestasP


Y esta la tabla Preguntas
preguntas

Y esto es una muestra de como me aparecen
encuestafinal
encuestafinal2

Espero y con esta información puedan entenderme un poco más
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar