Foros del Web » Programando para Internet » PHP »

radio buton y textarea en un cuestionario dinamico

Estas en el tema de radio buton y textarea en un cuestionario dinamico en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 08/02/2018, 08:42
 
Fecha de Ingreso: abril-2015
Mensajes: 130
Antigüedad: 9 años
Puntos: 0
radio buton y textarea en un cuestionario dinamico

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.

Código PHP:
<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.

  #2 (permalink)  
Antiguo 08/02/2018, 16:36
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: radio buton y textarea en un cuestionario dinamico

El problema es que para todas las preguntas usas el mismo nombre de campos, entonces, es como si hubiera solo un juego de radios y te tomaría solo el último textarea.

Código PHP:
Ver original
  1. <tr>
  2.                 <td width="50"><?php echo $idres; ?></td>
  3.                 <td width="470"><?php echo $texto; ?></td>
  4.                 <td> SI <input type="radio" name="radio<?php echo $idres; ?>" value="SI"></td>
  5.                 <td> NO <input type="radio" name="radio<?php echo $idres; ?>" value="NO"></td>
  6.                 <td><textarea name="comentarios<?php echo $idres; ?>" rows="5" cols="20">Escribe aquí tus Hallazgos</textarea></td>
  7.                 <td><textarea name="acciones<?php echo $idres; ?>" rows="5" cols="20">Escribe aquí tus Acciones Correctivas</textarea></td>
  8.            </tr>

De esta forma, tendrás campos "radio1" hasta "radioN" con valores posibles SI y NO; tendrás campos "comentarios1" y "acciones1" hasta "comentariosN" y "accionesN", donde N corresponde al número máximo de pregunta.

Para procesar el formulario, suponemos que recorres las preguntas en la misma forma en que creaste el formulario:
Código PHP:
Ver original
  1. // Arriba hay un ciclo donde obtienes la pregunta e $idres
  2.     $respuesta = $_POST["radio$idres"];
  3.     $comentarios = $_POST["comentarios$idres"];
  4.     $acciones = $_POST["acciones$idres"];
  5.     // Aquí es donde debes validar y, de ser el caso, actualizar la base de datos

También puedes crear los campos como array, pero al usar radios, tendrías que aplicar directamente el índice. Ejemplo:

Código PHP:
Ver original
  1. <tr>
  2.                 <td width="50"><?php echo $idres; ?></td>
  3.                 <td width="470"><?php echo $texto; ?></td>
  4.                 <td> SI <input type="radio" name="radio[<?php echo $idres; ?>]" value="SI"></td>
  5.                 <td> NO <input type="radio" name="radio[<?php echo $idres; ?>]" value="NO"></td>
  6.                 <td><textarea name="comentarios[<?php echo $idres; ?>]" rows="5" cols="20">Escribe aquí tus Hallazgos</textarea></td>
  7.                 <td><textarea name="acciones[<?php echo $idres; ?>]" rows="5" cols="20">Escribe aquí tus Acciones Correctivas</textarea></td>
  8.            </tr>

usa var_dump($_POST); para ver cómo recibes el formulario y puedas procesarlo, aunque es muy parecido a la primera opción.
__________________
- León, Guanajuato
- GV-Foto
  #3 (permalink)  
Antiguo 09/02/2018, 12:32
 
Fecha de Ingreso: abril-2015
Mensajes: 130
Antigüedad: 9 años
Puntos: 0
Respuesta: radio buton y textarea en un cuestionario dinamico

este es mi código con el que guardo

Código PHP:
<?php
$opcion 
$_POST["opcion"];
require 
'conexion.php';

//obtenemos el numero actual de votos para la opcion elegir
//comprovamos si $opcion no esta vacio
if(!empty($opcion)){
    
$consulta "SELECT valor FROM opciones 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 opciones SET valor = $votos WHERE id = $opcion";
   
/*$consulta = "insert into opciones (fecha, hallazgo, idenc, id_pregunta, valor) values('$sexo')";*/
    
mysqli_query($conexion$consulta);
}
header("Location: verEncuesta.php");
?>

Etiquetas: dinamica, dinamicamente, mysql, radiobutton
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:16.