PHP - radio buton y textarea en un cuestionario dinamico

 
Vista:
Imágen de perfil de Antonio
Val: 61
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

radio buton y textarea en un cuestionario dinamico

Publicado por Antonio (42 intervenciones) el 08/02/2018 15:44:14
estoy creando un cuestionario dinamico con MYSQL y PHP 7. en una paguina creo mis preguntas y mi cuestionario y las guardo en MYSQL y en otra paguina las muestro realizando una llamada a la base de datos para traerme las preguntas.

solo que tengo un inconveniente, al hacer llamar las preguntas quiero que po cada pregunta me mande 2 radiosbutton y 2 textarea.

lo cual lo realice de la siguiente manera.

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
<table>
    <tr>
        <!--Mostramos el titulo de la encuesta-->
        <td colspan="2"> <h3><?php echo $titulo; ?></h3></td>
    <input type="hidden" name="id" value="<?php echo $id; ?>">
    </tr>
    <?php
    //consulta que captura el texto , id de la tabla respuestas
    $sql = "SELECT texto,id FROM respuestas WHERE idenc='$id'";
    $sql = mysqli_query($conexion,$sql);
    //ahora recorremos los datos texto, id que estan vinculadas a la cuenta seleccionada
    while ($row = mysqli_fetch_array($sql)){
        $texto = $row["texto"];
        $idres = $row["id"];
 
//añiado los radiobuttons y los textarea          
    ?>
    <tr>
        <td width="50"><?php echo $idres; ?></td>
        <td width="470"><?php echo $texto; ?></td>
        <td> SI <input type="radio" name="SI" value="<?php echo $idres; ?>"></td>
        <td> NO <input type="radio" name="NO" value="<?php echo $idres; ?>"></td>
        <td><textarea name="comentarios" rows="5" cols="20">Escribe aquí tus Hallasgos</textarea></td>
        <td><textarea name="comentarios" rows="5" cols="20">Escribe aquí tus Acciones Correctivas</textarea></td>
 
   </tr>
    <?php } ?>
    <tr>

solo que de esta manera solo me permite contestar dos preguntas y no todas las preguntas de la encuesta.

bmDdy
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 Alejandro
Val: 1.634
Plata
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

radio buton y textarea en un cuestionario dinamico

Publicado por Alejandro (839 intervenciones) el 08/02/2018 16:05:12
  • Alejandro se encuentra ahora conectado en el
  • chat de PHP
debes cambiar los nombres, por ejemplo
1
2
<td> SI <input type="radio" name="<?php echo $idres;?>" value="SI"></td>
<td> NO <input type="radio" name="<?php echo $idres;?>" value="NO"></td>
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 Antonio
Val: 61
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

radio buton y textarea en un cuestionario dinamico

Publicado por Antonio (42 intervenciones) el 08/02/2018 17:14:16
pero de esta forma como voy a mandar la votación a mi base de datos
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
sin imagen de perfil

radio buton y textarea en un cuestionario dinamico

Publicado por unow (5 intervenciones) el 08/02/2018 19:32:04
Tienes que hacer un formulario y recoger los datos en el archivo php que pondrás en el action del formulario.En este archivo los más fácil es hacer un extract del POST,así: extract($_POST).Esto hará que cada campo name del formulario se convierta en variable en tu archivo php.Luego con un query rellenas un registro de la BBDD con estas variable.Por eso es imprescindible que cada radio de si/no tenga el mismo name y que el si o el no sea el value y no el name.
Si pones

1
2
<input type="radio" name="SI" value="<?php echo $idres; ?>">
<input type="radio" name="NO" value="<?php echo $idres; ?>">

tendrás una variable $SI con valor $idres y una variable $NO con valor $idres.No tiene sentido.
Tienes que poner,por ejemplo:

1
2
<input type="radio" name="respuesta1" value="si">
<input type="radio" name="respuesta1" value="no">

Así te llegará una variable $respuesta1 con valor si o no dependiendo de lo que se haya ticado.
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 Antonio
Val: 61
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

radio buton y textarea en un cuestionario dinamico

Publicado por Antonio (42 intervenciones) el 08/02/2018 19:46:09
puedes darme un ejemplo la verdad es que soy nuevo en php y no lo entiendo de todo
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 Antonio
Val: 61
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

radio buton y textarea en un cuestionario dinamico

Publicado por Antonio (42 intervenciones) el 08/02/2018 20:06:49
puedes darme un ejemplo la verdad es que soy nuevo en php y no lo entiendo de todo.


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
<tr>
		<!--Mostramos el titulo de la encuesta-->
		<td colspan="2"> <h3><?php echo $titulo; ?></h3></td>
	<input type="hidden" name="id" value="<?php echo $id; ?>">
	</tr>
	<?php
	//consulta que captura el texto , id de la tabla respuestas
	$sql = "SELECT texto,id FROM respuestas WHERE idenc='$id'";
	$sql = mysqli_query($conexion,$sql);
	//ahora recorremos los datos texto, id que estan vinculadas a la cuenta seleccionada
	while ($row = mysqli_fetch_array($sql)){
		$texto = $row["texto"];
		$idres = $row["id"];
 
	?>
	<tr>
		<!-- <td width="50"><input type="radio" name="opcion" value="<?php echo $idres; ?>" required</td>
		<td width="470"><?php echo $texto; ?></td>-->
		<td width="50"><?php echo $idres; ?></td>
		<td width="470"><?php echo $texto; ?></td>
		<td> SI <input type="radio" name="<?php echo $idres; ?>" value="SI"></td>
		<td> NO <input type="radio" name="<?php echo $idres; ?>" value="NO"></td>
		<td><textarea name="<?php echo $idres; ?>" rows="5" cols="20">Escribe aquí tus Hallasgos</textarea></td>
		<td><textarea name="<?php echo $idres; ?>" rows="5" cols="20">Escribe aquí tus Acciones Correctivas</textarea></td>
	</tr>
	<?php } ?>

aqui muesto la encuesta y aqui la guardo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$opcion = $_POST["opcion"];
$hallazgo = $_POST["hallazgo"];
$accion = $_POST["accion"];
require 'conexion.php';
 
//obtenemos el numero actual de votos para la opcion elegir
//comprovamos si $opcion no esta vacio
if(!empty($opcion)){
    $consulta = "SELECT votos FROM respuestas WHERE id=$opcion";
    $consulta = mysqli_query($conexion, $consulta);
    while ($row = mysqli_fetch_array($consulta)){
        $votos = $row["votos"];
    }
    //Incrementamos en uno los numeros votos totales
    $votos = $votos +1;
 
    //actualizamos la tabla respuesta
    $consulta = "UPDATE respuestas SET votos = $votos WHERE id = $opcion";
    mysqli_query($conexion, $consulta);
}
header("Location: verEncuesta.php");
?>
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
sin imagen de perfil

radio buton y textarea en un cuestionario dinamico

Publicado por unow (5 intervenciones) el 10/02/2018 11:40:14
Vale compañero,he aquí un ejemplo.Es un formulario.Los textos de "Título de la encuesta",los names etc... no sé por qué los sacas con php.Escríbelos en HTML y ya está..El action lo dejo en blanco porque saco los datos en el mismo archivo,pero lo suyo es hacerlo en otro.


Lo que dice al principio es que cuando se pulse el botón de Guardar,imprima los datos guardados,pero que mientras no se pulse muestre el formulario.También se puede hacer al revés

if( ! isset($_POST['guardar'])){ //Aquí el formulario } else{ extract($_POST) etc...} (con ! antes de isset,no se si se ve bien)

Imagen-1

Aquí el formulario
Imagen-2

Y aquí los datos guardados que imprimo con echo cuando pulsas Guardar

Imagen-3

Yo los imprimo para mostrártelos,pero si lo que quieres es guardarlos en una BBDD,en vez de imprimirlos haces la consulta sql correspondiente y los guardas.

Esto es solo un trozo del formulario.A partir de esto pones la cantidad de preguntas que quieras,pero que todos los names sean distintos.
También te recomiendo usar PDO,ya que la librería mysqli está obsoleta.
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 xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

radio buton y textarea en un cuestionario dinamico

Publicado por xve (6935 intervenciones) el 10/02/2018 19:13:14
Hola Unow, podrías pegar el código para poder copiarlo y no tener que escribirlo?
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
sin imagen de perfil

radio buton y textarea en un cuestionario dinamico

Publicado por unow (5 intervenciones) el 11/02/2018 10:09:09
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
<!DOCTYPE html>
<html>
<head>
	<title></title>
	<meta charset="utf-8">
	<style type="text/css">
		tr td{text-align: center}
	</style>
</head>
<body>
 
	<?php
 
		if(isset($_POST['guardar'])){
 
			extract($_POST);
 
			echo $respuesta1 . "<br>" . $texto1 . "<br>" . $texto2;
 
		}else{
 
	?>
 		<form method="post" action="  " >
			<table>
				<tr>
					<td colspan=4> <h3>Título de la encuesta</h3></td>
				</tr>
				<tr>
					<td> SI <input type="radio" required="required" name="respuesta1" value="SI"></td>
					<td> NO <input type="radio" required="required" name="respuesta1" value="NO"></td>
					<td><textarea name="texto1" rows="5" cols="20">Escribe aquí tus Hallazgos</textarea></td>
					<td><textarea name="texto2" rows="5" cols="20">Escribe aquí tus Acciones Correctivas</textarea></td>
				</tr>
				<tr>
					<td><input type="submit" value="Guardar" name="guardar"></td>
				</tr>
			</table>
		</form>
 
 	<?php 	} ?>
 
</body>
</html>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar