Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: welchu en 13 Agosto 2018, 12:00 PM

Título: Guardar respuesta múltiple en base de datos
Publicado por: welchu en 13 Agosto 2018, 12:00 PM
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);
    }
}
}
?>
Título: Re: Guardar respuesta múltiple en base de datos
Publicado por: hechicerd0 en 14 Agosto 2018, 08:38 AM
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.

(https://foro.elhacker.net/Themes/converted/images/topic/normal_post_locked_sticky.gif)  [Obligatorio] Normas del subforo de Desarrollo Web
https://foro.elhacker.net/desarrollo_web/obligatorio_normas_del_subforo_de_desarrollo_web_13102015-t407889.0.html
Título: Re: Guardar respuesta múltiple en base de datos
Publicado por: andystefano en 14 Agosto 2018, 19:06 PM
Asi e stienes un form dentro de otro corrije el html primero y prueba que ocurre.