Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   Duda sobre RadioButtons (https://www.clubdelphi.com/foros/showthread.php?t=40926)

Caray 02-03-2007 05:54:31

Duda sobre RadioButtons
 
Que tal compañeros del foro, por este medio les quiero pedir su ayuda.
El asunto es que estoy tratando se hacer una encuesta para evaluar docentes. Estoy lo hago utilizando PHP,MySQL y el DREAMWEAVER.
Hasta ahora tengo tres combos en un formulario para elegir los datos de Nombre de la escuela, Profesor y materia.
En otro formulario tengo una tabla dinamica que la jalo de una tabla llamada preguntas(No_pregunta,pregunta). Lo que quiero hacer es que cada pregunta tenga un grupo de radiobuttons con valores del 1 al 5 en total son 18 pregunta y que al terminar de contestar las preguntas y darle click a un boton los datos se envien a una tabla llamada Encuesta.
Quiero saber si es bueno usar dos formulario, como hacer para que los valores de los radiobuttons se envien a una campo (respuesta) de la tabla Encuesta igual con los selec.

Los campos de la tabla Encuesta son:
no_pregunta
respuesta
c_unidad
c_profesor
c_materia

Sin más y esperando haberme dado a entender me despido agradeciendoles su tiempo y esperando su respuesta.

roman 02-03-2007 09:23:25

Examina este ejemplo que te pongo:

Código:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<head>
<title>Encuesta</title>
<meta http-equiv='content-type' content='text/html; charset=iso-8859-1'>
</head>
<body>
<h1>Encuesta</h1>

<form method='post' action='respuestas.php'>
<fieldset>
<legend>Preguntas acerca de tu profesor</legend>
<table>
<tr>
  <td>1</td>
  <td>¿Sigue el plan de trabajo expuesto en la primera clase?</td>
  <td><input type='radio' name='pregunta[1]' value='1'>1</td>
  <td><input type='radio' name='pregunta[1]' value='2'>2</td>
  <td><input type='radio' name='pregunta[1]' value='3'>3</td>
  <td><input type='radio' name='pregunta[1]' value='4'>4</td>
  <td><input type='radio' name='pregunta[1]' value='5'>5</td>
</tr>
<tr>
  <td>2</td>
  <td>¿Es puntual al inicio y término de la clase?</td>
  <td><input type='radio' name='pregunta[2]' value='1'>1</td>
  <td><input type='radio' name='pregunta[2]' value='2'>2</td>
  <td><input type='radio' name='pregunta[2]' value='3'>3</td>
  <td><input type='radio' name='pregunta[2]' value='4'>4</td>
  <td><input type='radio' name='pregunta[2]' value='5'>5</td>
</tr>
<tr>
  <td>3</td>
  <td>¿Demuestra que planea las lecciones que imparte?</td>
  <td><input type='radio' name='pregunta[3]' value='1'>1</td>
  <td><input type='radio' name='pregunta[3]' value='2'>2</td>
  <td><input type='radio' name='pregunta[3]' value='3'>3</td>
  <td><input type='radio' name='pregunta[3]' value='4'>4</td>
  <td><input type='radio' name='pregunta[3]' value='5'>5</td>
</tr>
<tr>
  <td>4</td>
  <td>¿Revisa los trabajos extraclase?</td>
  <td><input type='radio' name='pregunta[4]' value='1'>1</td>
  <td><input type='radio' name='pregunta[4]' value='2'>2</td>
  <td><input type='radio' name='pregunta[4]' value='3'>3</td>
  <td><input type='radio' name='pregunta[4]' value='4'>4</td>
  <td><input type='radio' name='pregunta[4]' value='5'>5</td>
</tr>
</table>
</fieldset>

<input type='submit' value='Enviar respuestas'>
</form>
</body>
</html>

En cada fila se tienen cinco botones con el mismo nombre, por ejemplo, "pregunta[3]", y éso es lo que los agrupa de manera que sólo se pueda escoger uno del grupo. Pero además, al usar los corchetes como parte del nombre, PHP formará un arreglo con todos los valores:

Código:

$_POST

[pregunta] => Array
    (
        [1] => 1
        [2] => 2
        [3] => 2
        [4] => 4
    )

Esto es, $_POST['pregunta'] es un arreglo, con las respuestas (1, 2, 2, 4, p. ej.) de cada pregunta, con lo cual puedes manipularlas fácilmente para hacer la inserción en la tabla:

Código PHP:

$valores =
  
$cUnidad ',' $cProfesor ',' $cMateria .
  
implode(','$_POST['pregunta']);

$sql = <<<EOF
insert into encuesta
(c_unidad, c_profesor, c_materia, p1, p2, p3, p4)
values(
$valores)
EOF; 

Aquí estoy suponiendo que p1, p2, p3, p4 son campos de tu tabla encuesta con las respuestas de las preguntas 1, 2, 3, 4, etc.

// Saludos

Caray 05-03-2007 21:40:15

Otra pregunta más
 
Gracias Roman por la respuesta voy a calar para ver que sale.
Lo que quiero preguntar es sobre si hago bien en utilizar dos formularios para enviar los valores a una sola tabla, la de Encuesta.

Ya puse los campo de Encuesta(c_unidad,c_materia,c_docente,respuesta y no_pregunta), las preguntas las obtengo de la tabla preguntas_encuesta que tiene los campo (no_pregunta y pregunta), a través de una tabla dinámica. Esto lo pongo pork no entendi muy bien lo de:

insert into encuesta
(c_unidad, c_profesor, c_materia, p1, p2, p3, p4)
values($valores)

Porque me falta el campo respuesta y no_pregunta en el insert para encuesta.

La verdad espero me puedas ayudar porque yo para esto siendo honesto soy un poco malo pork voy empezando, pero como con delphi emepce asi y hoy pues ya me definedo aunque sea un poco. Gracias

roman 06-03-2007 00:31:09

Cita:

Empezado por Caray
Porque me falta el campo respuesta y no_pregunta en el insert para encuesta

Yo lo cambié adrede. Si tienes dieciocho preguntas, ¿cómo planeas apañarte con un sólo campo de respuesta? Es decir, parede que lo estás viendo verticalmente:

Código:

no_pregunta respuesta
-----------+----------
    1
-----------+----------
    2
-----------+----------
    3
-----------+----------
    4
-----------+----------
    5
-----------+----------
    6
-----------+----------
......................
-----------+----------

pero debes tener todas las respuestas en cada registro.

// Saludos

Caray 06-03-2007 04:22:17

Ya entendí
 
Hola Roman, pues otra vez enfadando.
Fijate que te entendí de esta forma:
Tu me estas recomendado que en lugar de tener este esquema para la tabla encuesta:

(c_unidad,C_docente,C_materia,No_pregunta,respuesta)
tenga el siguiente:

(C_unidad,c_docente,c_materia,p1,p2,...,p18), quitando el campo no_pregunta porque al parecer no sería necesario ya que con P1 sabríamos que es la respuesta de la pregunta1 y así sucesivamente.
O Que pasaría con él?.
Y ahora lo que falta me recomiendas el uso de los 2 formularios o con uno sería necesario o no hay problema con eso, Tu como lo harías?.
Bueno gracias por las respuestas, ya quedo todo bien ahora solo hay que modificar la Bases de Datos.

Caray 15-03-2007 05:19:42

A ver si pueden con este codigo
 
Que onda compa Roman, esperando que estes bien , te voy a molestar nuevamente.
Resulta que tengo unos combos anidados el primero selecciona una unidad académica, el segundo selecciona un docente de dicha unidad y el tercero selecciona la materia de ese maestro.
Ahora bien, los valores seleccionados de los tres campos se tiene que enviar a la tabla "encuesta" (en los campos c_unidad,c_profesor, c_materia) de la base de datos esa es mi primer pregunta como enviarlos: aqui te pongo el codigo de uno:
Código PHP:

<select name="c_profesor" id="c_profesor" onChange="submit()">
          <option value="" <?php if (!(strcmp(""$_POST['c_profesor']))) {echo "SELECTED";} ?>>Seleccionar</option>
          <?php
do {  
?>
          <option value="<?php echo $row_Profesores['c_profesor']?>"<?php if (!(strcmp($row_Profesores['c_profesor'], $_POST['c_profesor']))) {echo "SELECTED";} ?>><?php echo $row_Profesores['nom_profesor']?></option>
          <?php
} while ($row_Profesores mysql_fetch_assoc($Profesores));
  
$rows mysql_num_rows($Profesores);
  if(
$rows 0) {
      
mysql_data_seek($Profesores0);
   
$row_Profesores mysql_fetch_assoc($Profesores);
  }
?>
        </select>

El otro asunto es el siguiente debajo de los select dependientes tengo lo que es las preguntas de la encuesta:ahi va el codigo de una de ella:
Código:

<tr>
  <td><div align="center">1</div></td>
  <td><span class="Estilo19">Durante el semester o periodo escolar, &iquest;En qu&eacute; momento entrg&oacute; el Profesor su progrma de Estudio?. La Primera Semana ( Valor de 5), en la Segunda Semana ( Valor de 4), en la Tercera Semana ( Valor de 3), despu&eacute;s de la Tercera Semana ( Valor de 2), no entreg&oacute; (Valor 1). </span></td>
  <td><input type='radio' name='pregunta[1]' value='1'></td>
  <td><input type='radio' name='pregunta[1]' value='2'></td>
  <td><input type='radio' name='pregunta[1]' value='3'></td>
  <td><input type='radio' name='pregunta[1]' value='4'></td>
  <td><input type='radio' name='pregunta[1]' value='5'></td>
</tr>

En total son 18, para enviar a la misma tabla de encuesta uso el codigo que me recomendo Roman, que es este:
Código PHP:

<?php// Abre etiqueta PHP
$valores //Linea 347 la de el Error
  
$c_unidad ',' $c_materia ',' $c_materia
  
implode(','$_POST['pregunta']); 
$sql = <<<EOF 
insert into encuesta 
(c_unidadc_profesorc_materiap1p2p3p4,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12,p13,p14,p15,p16,p17,p18
values($valores
EOF;  
?>//Cierra etiqueta PHP

Pero me da el siguiente error:
Parse error: syntax error, unexpected T_VARIABLE in c:\appserv\www\dataremoto\evaluacion.php on line 347
Quisiera que me ayudaran a ver en que estoy mal y alguna forma de resolverlos. Utilizo PHP y Dreamweaver

Esperando respuesta me despido


La franja horaria es GMT +2. Ahora son las 09:23:48.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi