Foros del Web » Programando para Internet » PHP »

Boton para guardar encuesta?

Estas en el tema de Boton para guardar encuesta? en el foro de PHP en Foros del Web. Que tal, pues ya tengo hecha una plantilla, o mas bien un formulario para la creación de encuestas, en la cual solicita el numero de ...
  #1 (permalink)  
Antiguo 17/10/2012, 09:24
 
Fecha de Ingreso: septiembre-2012
Ubicación: Mexico
Mensajes: 58
Antigüedad: 11 años, 7 meses
Puntos: 2
Pregunta Boton para guardar encuesta?

Que tal, pues ya tengo hecha una plantilla, o mas bien un formulario para la creación de encuestas, en la cual solicita el numero de preguntas que deseamos que se creen, entre otras opciones mas. Ahora bien después de que se crea y ya esta lista para ser contestada, necesito añadir un botón de GUARDAR ENCUESTA, el cual tenga asignada una función que guarde la encuesta, es decir guarde los archivos .php en donde el usuario desee, pero que la encuesta se guarde con los datos que se eligieron (preguntas, nombres, opciones, etc.).

Primero pregunto porque no se si esto sea posible, y que implica generación de código, así quisiera pedir de su ayuda o algún consejo para poder hacerlo, o si definitivamente no se puede.

Aquí tengo estos códigos con los cuales se crea la encuesta:

Código PHP:
Ver original
  1. <?php
  2.    
  3.     $numero_preguntas = $_GET["w"];
  4.    
  5.     echo "<form action='doEncuesta.php' method='POST'>";
  6.     echo "<b>2. Escriba el nombre de la encuesta: </b><input type='text' name='n_encuesta'>";
  7.     echo "<br>";
  8.     echo "<br>";
  9.     echo "<b>3. Seleccione Centro de trabajo: </b>
  10.                 <select name='agencias' id='lista'>
  11.                 <option selected value=''>Seleccione...</option>
  12.                 <option value='Distribucion'>Distribucion</option>
  13.                 <option value='Zona Poninente'>Zona Poniente</option>
  14.                 <option value='Zona Oriente'>Zona Oriente</option> 
  15.                 </select>";
  16.     echo "<br>";
  17.     echo "<br>";
  18.     echo "<b>4. Seleccione el tipo de encuesta: </b>
  19.                 <select name='contratos' id='lista2'>
  20.                 <option selected value=''>Seleccione...</option>
  21.                 <option value='Base Confianza'>Base Confianza</option>
  22.                 <option value='Base Sindical'>Base Sindicalizado</option>
  23.                 <option value='Temporal Confianza'>Temporal Confianza</option> 
  24.                 <option value='Temporal Sindicalizado'>Temporal Sindicalizado</option> 
  25.                 </select>";
  26.     echo "<br>";
  27.     echo "<br>";
  28.     echo "<b>5. Escriba las preguntas que tendra la encuesta:</b>";
  29.     echo "<br>";
  30.     echo "<br>";
  31.     for ($i='1';$i <= $numero_preguntas; $i++)
  32.         {
  33.         echo "Preguntas: <input type='text' name='p[]' size='50'>";
  34.         echo "<br>";
  35.         }
  36.         echo "<br>";
  37.         echo "<input type='submit' name='crear' value='Crear encuesta'>";
  38.     echo "</form>";
  39.        
  40.             if(isset($_POST['crear'])){
  41.                 require("doEncuesta.php");
  42.             }  
  43. ?>

Aquí el código donde ya se muestra la encuesta hecha, con las entradas que se le dieron en el formulario:

Código PHP:
Ver original
  1. <?php
  2.  
  3.     $n_encuesta = $_POST['n_encuesta'];
  4.     $c_trabajo = $_POST['agencias'];
  5.     $t_encuesta = $_POST['contratos'];
  6.     $preguntas = $_POST['p'];
  7.    
  8.     echo "<h3 align='center'>El nombre de la encuesta es $n_encuesta </h3>";
  9.     echo "<br>";
  10.     echo "<h4 align='center'>El centro de trabajo es $c_trabajo</h4>";
  11.     echo "<h4 align='center'>El tipo de encuesta es $t_encuesta</h4>";
  12.     echo "<br>";
  13.     echo "<h4>Responde las siguientes preguntas:</h4>";
  14.     echo "<form method='POST' action=''>";
  15.         echo "<table border='1'>";
  16.        
  17.             foreach ($_POST['p'] as $pregunta){
  18.                  echo "<tr>";
  19.                  echo "<td><b> $pregunta </b></td>";
  20.                  echo "</tr>";
  21.                  echo "<tr>";
  22.                  echo "<td><input type='radio' name='ans1' value='1'>Opcion 1</td>";
  23.                  echo "<td><input type='radio' name='ans2' value='2'>Opcion 2</td>";
  24.                  echo "<td><input type='radio' name='ans3' value='3'>Opcion 3</td>";
  25.                  echo "<td><input type='radio' name='ans4' value='4'>Opcion 4</td>";
  26.                  echo "</tr>";
  27.             }
  28.        
  29.         echo "</table>";
  30.         echo "</br>";
  31.         echo "<b> Comentarios: </b>";
  32.         echo "<br>";
  33.         echo "<textarea name='coments' cols='50' rows='5'></textarea>";
  34.         echo "</br>";
  35.         echo "</br>";
  36.         echo "<input type='submit' name='guardarEnc' value='Guardar Encuesta'>";
  37.     echo "</form>";
  38. ?>
  #2 (permalink)  
Antiguo 17/10/2012, 10:05
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Boton para guardar encuesta?

Hmm por lo que leí creo que estás en un error.

No debes generar archivos, lo que debes generar es datos.

es decir, creas una tabla encuesta, y ahi pones todos los datos necesarios para encuestas dinámicas, es decir, numero de preguntas, preguntas, respuestas, etc.

y eso simplemente lo llamas al archivo que genera la encuesta desde la bd, por el id de la encuesta.
  #3 (permalink)  
Antiguo 17/10/2012, 10:19
 
Fecha de Ingreso: septiembre-2012
Ubicación: Mexico
Mensajes: 58
Antigüedad: 11 años, 7 meses
Puntos: 2
Respuesta: Boton para guardar encuesta?

Cita:
Iniciado por memoadian Ver Mensaje
Hmm por lo que leí creo que estás en un error.

No debes generar archivos, lo que debes generar es datos.

es decir, creas una tabla encuesta, y ahi pones todos los datos necesarios para encuestas dinámicas, es decir, numero de preguntas, preguntas, respuestas, etc.

y eso simplemente lo llamas al archivo que genera la encuesta desde la bd, por el id de la encuesta.
Gracias por responder amigo, te entiendo lo que me quieres decir es que se genere una tabla en la bd, en donde se guarden todos los datos que tenga la encuesta, es decir el nombre de encuesta, numero de preguntas, preguntas.

Lo único que quiero hacer es que el usuario cree la encuesta y la guarde para después poder utilizarla, me refiero a subirla y que la contesten los usuarios, por las respuestas no hay problema ya que solo serán 4 opciones posibles, e ahí otro detalle al momento de que los usuarios la respondan las respuestas serán enviadas de nuevo a la bd.

Otra forma que había pensado era en hacer un botón de GUARDAR, el cual guardara el código fuente de la pagina y se guardara en formato .php y así poder utilizarla cuando fuera necesario, pero para eso tendría que hacer una función lo cual no se como se haga.
  #4 (permalink)  
Antiguo 17/10/2012, 10:28
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Boton para guardar encuesta?

Así es lo mejor, es hacerlo por base de datos, generar tantos archivos php podria traerte incluso porblemas serios de seguridad si no sabes crearlos.

Pero lo que dije, no es que se genere una tabla, si no que tu crees una tabla encuestas, ahí puedes trabajar perfectamente.

creas la tabla encuestas ahi dentro pones los campos id, nombre de la encuesta y otros datos relevantes.

en tablas alternas creas la tabla preguntas y respuestas, con relación 1:N es decir que las preguntas solo puedan tener una encuesta, lo mismo con las respuestas, obvio deben estar asociadas al id de pregunta y ya esta.

generas la encuesta con sus preguntas y luego traes todos los datos.

para saber que contestó cada usuario lo mismo. asociar al usuario si que lo quieres, una tabla que tenga todos estos datos.

es algo complicado, pero es solo "talacha" trabajo, no es dificil analizarlo.
  #5 (permalink)  
Antiguo 17/10/2012, 12:10
 
Fecha de Ingreso: septiembre-2012
Ubicación: Mexico
Mensajes: 58
Antigüedad: 11 años, 7 meses
Puntos: 2
Respuesta: Boton para guardar encuesta?

Cita:
Iniciado por memoadian Ver Mensaje
Así es lo mejor, es hacerlo por base de datos, generar tantos archivos php podria traerte incluso porblemas serios de seguridad si no sabes crearlos.

Pero lo que dije, no es que se genere una tabla, si no que tu crees una tabla encuestas, ahí puedes trabajar perfectamente.

creas la tabla encuestas ahi dentro pones los campos id, nombre de la encuesta y otros datos relevantes.

en tablas alternas creas la tabla preguntas y respuestas, con relación 1:N es decir que las preguntas solo puedan tener una encuesta, lo mismo con las respuestas, obvio deben estar asociadas al id de pregunta y ya esta.

generas la encuesta con sus preguntas y luego traes todos los datos.

para saber que contestó cada usuario lo mismo. asociar al usuario si que lo quieres, una tabla que tenga todos estos datos.

es algo complicado, pero es solo "talacha" trabajo, no es dificil analizarlo.

Asi es amigo tienes toda la razón, te agradezco de nuevo tu ayuda, ahora entiendo bien como estructurar la programacion, ahora voy a comenzar con construir la tabla por medio del ID, es decir el id de la encuesta sera el nombre para la tabla, se construira una tabla por cada encuesta, no te preocupes ya que no tendra muchas encuestas la bd, por eso lo hare asi.

Aqui la sentencia donde se creara la tabla, por medio de los datos recibidos del formulario:

Código PHP:
Ver original
  1. <?php
  2.  
  3.     // Datos que se recibiran desde el formulario
  4.     $n_encuesta = $_POST['n_encuesta'];
  5.     $id = $_POST['id'];
  6.     $c_trabajo = $_POST['agencias'];
  7.     $t_encuesta = $_POST['contratos'];
  8.    
  9.     //Array de preguntas p[] de 5 a 10
  10.     $preguntas = $_POST['p'];
  11.    
  12.     $con = mysql_connect("localhost", "root", "");
  13.        
  14.         if (!$con)
  15.         {
  16.             die('No se pudo conectar a la BD: ' . mysql_error());
  17.         }
  18.  
  19.         $bd = mysql_select_db("encuestas", $con);
  20.            
  21.             // Creacion de la tabla
  22.             $tabla = "CREATE TABLE $id(
  23.                                     n_encuesta VARCHAR (50) DEFAULT '$n_encuesta',
  24.                                     c_trabajo VARCHAR (25) DEFAULT '$c_trabajo',
  25.                                     t_encuesta VARCHAR (25) DEFAULT '$t_encuesta',
  26.                                     preguntas VARCHAR (55))";
  27.                                    
  28.             $query = mysql_query($tabla,$con) or die ("Error:" .mysql_error());
  29.            
  30.             $pregs = "INSERT INTO $id (pregunta) VALUES ($preguntas)";
  31.            
  32.             mysql_close($con);
  33.             echo '<b>Se ha creado la nueva encuesta con exito!</b>';
  34. ?>

Como no es fijo el numero de preguntas que se pueden elegir, es decir pueden ser de 5 a 10 preguntas y por eso es:

Código PHP:
Ver original
  1. for ($i='1';$i <= $numero_preguntas; $i++)
  2.         {
  3.         echo "Preguntas: <input type='text' [B]name='p[]'[/B] size='50'>";
  4.         echo "<br>";
  5.         }

Pero al momento de insertarlas en la tabla no se como hacer para que cada una ocupe un campo,no se si me entiendas, es decir ahorita en la tabla solo creo un campo llamado pregunta.

Etiquetas: encuesta, formulario, botones
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:35.