Guardar respuesta múltiple en base de datos

Iniciado por welchu, 13 Agosto 2018, 12:00 PM

0 Miembros y 1 Visitante están viendo este tema.

welchu

Estoy haciendo un programa donde trato de guardar datos cada vez que el usuario presiona 'submit'. He logrado guardar en mi tabla "respuestas" los datos de las columnas: exercise_id_fk, student_id y difficult_student, pero no puedo guardar los datos de la columna: choice_answer. Cada vez que intento guardarlo, me aparecen como null las otras columnas al pulsar submit. Estoy tratando de almacenar en la base de datos respuestas de opción múltiple. ¿Podéis ayudarme a ver qué pasa?

Este es mi programa donde intento almacenar en la columna 'choice_anser' las respuestas de opción múltiple:


Código (php) [Seleccionar]
<?php
// Start the session
session_start();
$servername "localhost";
$username "root";
$password "";
$dbname "project";

$conn = new mysqli($servername$username$password$dbname);
/*echo*/ $id=$_GET['id'];
$sql "SELECT * FROM exercises where exercise_id='$id'";
$result $conn->query($sql); /*Check connection*/
?>


<div id="centered_B" class="header">

<?php
$row 
$result->fetch_assoc();
    echo 
'<h1>' $row["exercise_id"]. ". " $row["title"] . '</h1>' "<br>" '<p>' $row["text"] . '</p> <img width="603" height="auto" src="' $row["image_path"] . '"><br><br>

<form method="post" >
    <input type="radio" name="choice" value= "1" /><img src="' 
$row["image_path_A"] . '"/><br>
    <input type="radio" name="choice" value= "2" /><img src="' 
$row["image_path_B"] . '"><br>
    <input type="radio" name="choice" value= "3" /><img src="' 
$row["image_path_C"] . '"><br>';
echo 
'</form>';

/*var_dump($id)*/
?>


   <br><br><br><!--- Select difficulty --->

   <p2>Select difficulty level:</p2>

   <form action='' method='post'>
   <select name="choose" id="choose">>
       <option value="1" <?php if($row["difficulty"]=="1") { echo "selected"; } ?> >1</option>
       <option value="2" <?php if($row["difficulty"]=="2") { echo "selected"; } ?> >2</option>
       <option value="3" <?php if($row["difficulty"]=="3") { echo "selected"; } ?> >3</option>
       <option value="4" <?php if($row["difficulty"]=="4") { echo "selected"; } ?> >4</option>
       <option value="5" <?php if($row["difficulty"]=="5") { echo "selected"; } ?> >5</option>
   </select>

   <br><br><br><!--- Button --->

<!--        <button class="buttonSubmit" >Submit</button>-->
       <input type="submit" name="submit" value="Submit">
       <button class="buttonNext" >Next Question</button>
   </form>

</div><!--- end of centered_B div --->



<?php

if (isset($_POST['submit'])) {
    
$user_id $_SESSION['user_id'];
   
$user_check_query "SELECT * FROM users WHERE id='$user_id'";
if(isset(
$_POST['choice'])){
    if(isset(
$_POST['choose'])){
        
$choice_answer=$_POST['choice'];
        
$difficulty=$_POST['choose'];
//      */$user_id = $_SESSION['user_id'];*/
        
$query "INSERT INTO answers (exercise_id_fk, student_id, difficulty_student, choice_answer) VALUES ('$id','$user_id', '$difficulty', '$choice_answer')";
        
$sql=mysqli_query($conn,$query);
    }
}
}
?>

hechicerd0

#1
Hola,

Por lo que veo lo tienes en 2 forms distintos.

Al hacer un SUBMIT, hace el SUBMIT del form en el que estes. Prueba de juntarlo todo en el mismo submit.

Código (html) [Seleccionar]
<form>
todo
<input type="submit" name="submit" value="Submit">
</form>





Mod: Los codigos van entre etiquetas GeSHi.

  [Obligatorio] Normas del subforo de Desarrollo Web
https://foro.elhacker.net/desarrollo_web/obligatorio_normas_del_subforo_de_desarrollo_web_13102015-t407889.0.html

andystefano

Asi e stienes un form dentro de otro corrije el html primero y prueba que ocurre.