PHP - Recuperar datos de un select dinámico y guardarlo en base de datos

 
Vista:
sin imagen de perfil
Val: 14
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Recuperar datos de un select dinámico y guardarlo en base de datos

Publicado por Rodrigo (5 intervenciones) el 15/08/2020 19:19:37
Hola buenas tardes, tengo un problema que llevo varios días intentando resolver y no encuentro la solución.
La cuestión es que no logro rescatar los datos de un select para poder guardarlos en una base de datos. El codigo de mi select es el siguiente:

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
<div class="form-group">
    <label for="estado_entregable" class="col-sm-2 control-label"> Estado Entregables</label>
    <div class="col-sm-10">
        <?php
        while($row1 = $result1->fetch_array())
        {
        ?>
        <label for="estado_entregable"><?echo $row1["entregable"];?></label>
            <select id="estado_entregable" name="estado_entregable" data-rule-required="false" class="form-control">
                <option value="">-- Selecciona una estado</option>
        <?php
                while($row11 = $result11->fetch_array()){
 
                if($row1['estado']==$row11['estado'])
                {
        ?>
                <option value="<? echo $row1['agse_estado_entregable_id_estado'];?>" selected><? echo $row1['estado'];?></option>
        <?
                    }
                    else
                    {
        ?>
                <option value="<? echo $row11['id_estado'];?>"><? echo $row11['estado'];?></option>
        <?
                    }
            } $result11= $conexion->query($sql11);
        ?>
   </select><br>
        <?
        }
        ?>
    </div>
</div>

La cosa es que salen 1 o varios selects, y en cada select un combo con opciones, pues solo me guarda la opción del primer select que se crea. Ya se creen 1 o n , solo me guarda la opción del primer select que se crea.

He probado a intentar meter las selecciones de los selects en un JSON, e ir guardando en la base de datos, pero nada. Con el típico código para recuperar el dato seleccionado no logro que funcione para más de uno:

1
document.getElementById("estado_entregable");
o si añado

1
document.getElementById("estado_entregable").selectedIndex;
o alguna otra opción tampoco logro nada.

¿Como puedo hacer que de varios selects que se van creando pueda ir recogiendo los datos seleccionados en las opciones?

¿Puede ser el problema que el select tiene la misma "id" para todas las veces que sale?

Muchas gracias de antemano a tod@s por la ayuda!
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 joel
Val: 2.839
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Recuperar datos de un select dinámico y guardarlo en base de datos

Publicado por joel (865 intervenciones) el 16/08/2020 09:23:37
Hola Rodrigo, en el código que muestras, solo hay un select... puedes mostrar el código con dos selects?

Como envias los valores pulsados al PHP para que se guarden? por ajax o cuando se envía el formulario?
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
Val: 14
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Recuperar datos de un select dinámico y guardarlo en base de datos

Publicado por Rodrigo (5 intervenciones) el 16/08/2020 11:09:52
Hola Joel, pues es que el código precisamente solo muestra un select aparentemente, pero si te fijas en el primer while, la consulta me devuelve un numero de filas con sus datos, según el numero de filas que devuelva la consulta pues se crean ese número de selects. El bucle va creando de 1 a varios selects.

Para el envió de datos es por ajax, en "data:" están el resto de variables junto con la que quiero enviar que es "&estado_entregable="+estado_entregable", que ahora obviamente solo envía 1 dato.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$.ajax({
  type: "POST",
  url: "../grabar_tarea.php",
  data: "id=<? echo $_GET["tarea"]?>&pos=<? echo $_GET["posicion"];?>&proyecto="+proyecto+"&proyecto="+proyecto+"&id_solicitud="+id_solicitud+"&etiqueta="+etiqueta+"&fecha="+fecha+"&usuario="+usuario+"&prioridad="+prioridad+"&estado_entregable="+estado_entregable+"&observaciones="+observaciones+"&fecha_tope="+fecha_tope+"&fecha_inicio="+fecha_inicio+"&fecha_fin="+fecha_fin+"&usuario_arq="+usuario_arq+"&estado="+estado+"&destacados="+destacados+"&conce_destacado="+conce_destacado+"&rectificacion="+rectificacion+"&incumplimiento="+incumplimiento+"&incumplimiento_just="+incumplimiento_just+"&ans="+ans+"&tiempo_respuesta="+tiempo_respuesta+"&horas_reales="+horas_reales+"&clases_mod="+clases_mod+"&hacer_calculo="+hacer_calculo+"&lista="+entregablesJSON+"&ent_p_regresion="+ent_p_regresion+"&ent_p_carga="+ent_p_carga,
  dataType: "html",
  error: function(){
        alert("Error en petición ajax");
  },
  success: function(data){
        $("#resultado").html(data);
        $("#cargando").html('');
        n();
  }
});
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 joel
Val: 2.839
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Recuperar datos de un select dinámico y guardarlo en base de datos

Publicado por joel (865 intervenciones) el 16/08/2020 11:15:31
Es exactamente lo que te comenta @Luis... no puedes repetir los id's y nombres de los campos...
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
Val: 14
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Recuperar datos de un select dinámico y guardarlo en base de datos

Publicado por Rodrigo (5 intervenciones) el 16/08/2020 11:18:09
Claro, si esa puede ser la idea, pero como puedo hacer para que los id y names vayan cambiando según el número de selects que se van creando? es posible nombrar los id y names con una variable que vaya cambiando según un bucle por ejemplo?
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
Val: 90
Ha aumentado su posición en 47 puestos en PHP (en relación al último mes)
Gráfica de PHP

Recuperar datos de un select dinámico y guardarlo en base de datos

Publicado por Luis (23 intervenciones) el 16/08/2020 09:54:33
Los Select los estas creando con el mismo id y name, tienes que usar alguna variable para nombrarlos de distinta manera segun se van creando.
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
Val: 14
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Recuperar datos de un select dinámico y guardarlo en base de datos

Publicado por Rodrigo (5 intervenciones) el 16/08/2020 11:12:38
Hola Luis, pues algo así pensé, pero no se como hacerlo. ¿Puedo nombrar el select con un id que se una variable? ¿Algo así?: id= $nombre
Dentro de un bucle for quizás y que ese nombre de variable vaya cambiando según el número de selects que se van creando?
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 joel
Val: 2.839
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

Recuperar datos de un select dinámico y guardarlo en base de datos

Publicado por joel (865 intervenciones) el 16/08/2020 11:16:21
Si el $nombre es diferente para cada uno, si que puedes utilizarlo... pero tienen que ser diferentes!!!
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
Val: 14
Ha disminuido 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Recuperar datos de un select dinámico y guardarlo en base de datos

Publicado por Rodrigo (5 intervenciones) el 16/08/2020 11:29:49
Ok, entendido jeje, voy a probar. Si me atasco de nuevo me paso por aqui de nuevo jeje.

Muchas gracias por la ayuda Joel y Luis.
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