Comunidad de diseño web y desarrollo en internet online

Problemas con Checkbox e Insert

Citar            
MensajeEscrito el 26 Mar 2015 11:25 pm
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:

Código PHP:

Código PHP :

 echo "<input name=respuestan[] type=checkbox value=".$row1[6]." />".$row1[6]." <br />";  



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

Código PHP:

Código PHP :

<?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

Por extramex

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 27 Mar 2015 12:17 pm
Cámbiale el atributo name de los <input> que se corresponden a cada pregunta.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 28 Mar 2015 06:52 pm
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.

Código PHP :

<?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


Y esto es una muestra de como me aparecen



Espero y con esta información puedan entenderme un poco más

Por extramex

1 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.