Foros del Web » Programando para Internet » PHP »

Duda con una encuesta php

Estas en el tema de Duda con una encuesta php en el foro de PHP en Foros del Web. Hola bueno resulta que me encargaron una pagina que permita crear encuestas a los usuarios es decir especificar el numero de preguntas y respuestas y ...
  #1 (permalink)  
Antiguo 15/04/2006, 15:23
Avatar de Moka  
Fecha de Ingreso: abril-2006
Mensajes: 14
Antigüedad: 11 años, 7 meses
Puntos: 0
Duda con una encuesta php

Hola bueno resulta que me encargaron una pagina que permita crear encuestas a los usuarios es decir especificar el numero de preguntas y respuestas y que estas se guarden en una base de datos, he empezado a hacerlo pero hay un punto en el que no puedo pasar el contenido de las preguntas con $HTTP_POST_VARS[], es decir tengo algo como esto:

Código HTML:
<form name="form1" method="post" action="preguntas.php">
  <p>Titulo de la encuesta: 
    <input type="text" name="titulo">
  </p>
  <p>Numero de preguntas 
    <input type="text" name="preguntas">
  </p>
  <p>
    <input type="submit" name="Submit" value="Enviar">
  </p>
</form> 
esa seria la primer pagina donde guardo el titulo de la encuesta y la cantidad de preguntas.

Código PHP:
<?php
  $preguntas 
$HTTP_POST_VARS['preguntas']; 
  
$i=1;
  do{
  echo 
"<br>pregunta $i<input name = '$i' type = 'text' size ='50' maxlength ='50'>"
  
$i++;
  }while (
$i<=$preguntas);
  echo     
"<input name = 'textos' type = 'hidden' size ='2' maxlength ='5' value = '$i'>";
  
?>
en esta mediante un ciclo hago que aparezcan varios campos para introducir las preguntas , y los valores que introduzca ahi, quiero guardarlos en una base de datos, el problema es que no puedo pasar su contenido al presionar el boton enviar a la pagina siguiente donde guardaria los datos, ya que si lo hago con HTTP_POST_VARS no funciona, si tienen una idea mejor se los agradecería porque me urge terminar esto

Última edición por Moka; 15/04/2006 a las 15:42
  #2 (permalink)  
Antiguo 16/04/2006, 03:48
Avatar de Bytevamp  
Fecha de Ingreso: junio-2005
Ubicación: /var/www/
Mensajes: 789
Antigüedad: 12 años, 6 meses
Puntos: 7
A ver prueba con:

Código PHP:
<?php
  $preguntas 
$_POST['preguntas']; 
  
$i=1;
  do{
  echo 
"<br>pregunta ".$i."<input name = '".$i."' type = 'text' size ='50' maxlength ='50'>"
  
$i++;
  }while (
$i<=$preguntas);
  echo     
"<input name = 'textos' type = 'hidden' size ='2' maxlength ='5' value = '".$i."'>";
  
?>
El error puede estar en el uso de $HTTP_POST_VARS, en lugar de $_POST, asimismo comprueba el uso de las variables ($i).

Espero que te solucione el problema.

Saludos.
__________________
"zankius veri mach" a todos los que me habeis ayudado.
carteles para inmobiliarias || alquiler de coches
  #3 (permalink)  
Antiguo 16/04/2006, 14:43
Avatar de Moka  
Fecha de Ingreso: abril-2006
Mensajes: 14
Antigüedad: 11 años, 7 meses
Puntos: 0
Bueno esa parte ya funciona gracias por la ayuda, ahora otra molestia, se puede usar $_POST[] dentro de un bucle , como para ir recogiendo el texto de las preguntas porque lo he usado asi y no me muestra nada:
Código PHP:
for ($c=1;$c<=$cuenta;$c++)
{
$pregunta[$c] = $_POST['$c'];
echo 
"$pregunta[$c]";

  #4 (permalink)  
Antiguo 17/04/2006, 08:45
Avatar de Bytevamp  
Fecha de Ingreso: junio-2005
Ubicación: /var/www/
Mensajes: 789
Antigüedad: 12 años, 6 meses
Puntos: 7
La pregunta, ¿donde tienes almacenadas esas preguntas?¿en una Base de Datos? si es asi, bastaria con un Select que te diese el nº de preguntas deseadas, algo asi:
Código PHP:
$con=mysql_connect("localhost","usuario","password");
mysql_select_db("Datos");
$ssql"select pregunta from preguntas LIMIT 0, $preguntas";
$consulta mysql_query($ssql,$con);
While (
$registro=mysql_fetch_assoc($consulta)){
      echo 
$registro['pregunta']."<br>";
}; 
Espero que te haya aclarado algo.

Saludos.
__________________
"zankius veri mach" a todos los que me habeis ayudado.
carteles para inmobiliarias || alquiler de coches
  #5 (permalink)  
Antiguo 17/04/2006, 11:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Por mi parte les recomendaría usar la técnica de "array" para definir elementos variables de un formulario y tratarlos como tal para recorrerlo.

http://www.forosdelweb.com/showthrea...710#post518710

En su defecto .. $_POST en sí es un array .. así que recorrerlo sólo se trata de aplicar un bucle foreach() por ejemplo

Código PHP:
<?
foreach ($_POST as $variable->$valor){
   echo 
"Varible: ".$variable." => ".$valor."<br>";
}
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 17/04/2006, 22:58
Avatar de Moka  
Fecha de Ingreso: abril-2006
Mensajes: 14
Antigüedad: 11 años, 7 meses
Puntos: 0
Agradezco a Bytevamp y a Cluster por sus respuestas, gracias a ellas he podido resolver mi problema, no se que hubiera hecho sin ustedes, saludos.
  #7 (permalink)  
Antiguo 18/04/2006, 02:19
Avatar de uamistad  
Fecha de Ingreso: diciembre-2004
Ubicación: Cd. de México
Mensajes: 1.395
Antigüedad: 13 años
Puntos: 1
Creo que una vez resueltas las peculiaridades del lenguaje te enfrentas al diseño de la base de datos que es lo que más cuesta trabajo en ocasiones, ya que no necesitas crear una encuesta, sino, así como lo entendí, cualquier cantidad de encuestas dejando que el usuario seleccione el tipo de preguntas.

Ese sería el verdadero reto. Por ejemplo si yo me meto y voto 5000 veces no debería alterar el resultado de la encuesta. Ese tipo de situaciones.

Suerte con tu aplicación, se escucha/(se lee) interesante.
__________________
"Di no al Internet Explorer" -Proverbio Chino-
  #8 (permalink)  
Antiguo 18/04/2006, 15:51
Avatar de Moka  
Fecha de Ingreso: abril-2006
Mensajes: 14
Antigüedad: 11 años, 7 meses
Puntos: 0
Si tienes razon es un buen reto y estoy aprendiendo bastante, y todavía me falta mucho por aprender, ya les contaré como me fue.

Saludos uamistad.
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 14:39.