Foros del Web » Programando para Internet » PHP »

Capturar todos los value de un select multiple y enviar a una bd

Estas en el tema de Capturar todos los value de un select multiple y enviar a una bd en el foro de PHP en Foros del Web. Colegas, estoy enrredado con un tema que les cuento y no encuentro como solucionar, tengo una un select, con valores de una tabla, y otro ...
  #1 (permalink)  
Antiguo 13/01/2015, 10:27
Avatar de alexisverano  
Fecha de Ingreso: septiembre-2008
Ubicación: La Habana.Cuba
Mensajes: 298
Antigüedad: 15 años, 7 meses
Puntos: 36
Capturar todos los value de un select multiple y enviar a una bd

Colegas, estoy enrredado con un tema que les cuento y no encuentro como solucionar, tengo una un select, con valores de una tabla, y otro select multiple, al cual adiciono y elimino los valores del primer select, mediante javascript, el problema es que no encuentro como capturar todos los valores del select multiple para enviarlos a un campo de una tabla.

Aqui les dejo el codigo. Si creen que se puede mejorar, tambien acepto sus recomendaciones.

Código Javascript:
Ver original
  1. function agregar_elementos(){
  2.     emisor = document.getElementById("obj_listatematicos");
  3.     receptor = document.getElementById("obj_tematicoselect");
  4.     posicion = receptor.options.length;
  5.     receptor.options[posicion] = new Option(emisor.value, emisor.value);
  6. }
  7.  
  8. function eliminar_elementos(){
  9.     var x = document.getElementById("obj_tematicoselect");
  10.     x.remove(x.selectedIndex); 
  11. }

Código PHP:
Ver original
  1. <?php
  2. include ('../../includes/conn_sys.php');
  3. $rs = $mysqli->query("SELECT * FROM tb_conceptostematicos ORDER BY descripcion");    
  4. echo "<select id='obj_listatematicos' class='cajatexto'>";
  5. echo "<option value=''></option>";
  6. while ($row = $rs->fetch_assoc()){ echo "<option value=".$row["descripcion"].">" .$row["descripcion"] ."</option>"; }
  7. echo "</select>";
  8. ?>
  9. <input type="submit" name="buttonA" id="buttonA" value="--&gt;" onclick="agregar_elementos();">
  10. <input type="submit" name="buttonB" id="buttonB" value="&lt;--"  onclick="eliminar_elementos();">
  11. <select name="obj_tematicoselect" size="15" multiple class='cajatexto' id="obj_tematicoselect" style="width:150px; height:80px;">
  12. </select>
  13. <input type="submit" name="button" id="button" value="Enviar" />

Gracias...
  #2 (permalink)  
Antiguo 13/01/2015, 11:07
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Capturar todos los value de un select multiple y enviar a una bd

No se a que le llamas SELECT MULTIPLES... si necesitas guardar los valores y serán más de 1, porque mejor no lo haces en un arreglo o una sessión
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #3 (permalink)  
Antiguo 13/01/2015, 11:21
Avatar de alexisverano  
Fecha de Ingreso: septiembre-2008
Ubicación: La Habana.Cuba
Mensajes: 298
Antigüedad: 15 años, 7 meses
Puntos: 36
Respuesta: Capturar todos los value de un select multiple y enviar a una bd

En escencia lo que necesito es que los usuarios puedan selecionar elementos de una lista y pasarlos a otro select o caja de texto o cualquier objeto y poder capturarlos todos y enviarlos a una bd
  #4 (permalink)  
Antiguo 13/01/2015, 11:37
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Capturar todos los value de un select multiple y enviar a una bd

Conoces el Carrito de Compra? bueno, no solo se puede usar para cargar precios y productos, sino datos recuperables nuevamente... al final eso de carrito de compras es solo un concepto.
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #5 (permalink)  
Antiguo 13/01/2015, 11:43
 
Fecha de Ingreso: octubre-2014
Ubicación: Buenos Aires
Mensajes: 278
Antigüedad: 9 años, 6 meses
Puntos: 12
Respuesta: Capturar todos los value de un select multiple y enviar a una bd

Hola alexisverano, yo tengo una lista con varios elementos donde los usuarios pueden seleccionar más de 1 y los capturo de esta manera para insertarlos en las tablas.

Jquery, con este código valido que haya algún elemento seleccionado.

Código Javascript:
Ver original
  1. var estudios = new Array();
  2.             $("select[name='estudios[]']").each(function() {estudios.push($(this).find(':selected').val()); });
  3.            
  4.             estudios = estudios;
  5.            
  6.             if(estudios == null || estudios == '') {
  7.                 $("#msj").html("Debe completar los filtros.").show(1000);
  8.             }


Hago un implode con php de los elementos seleccionados

Código PHP:
Ver original
  1. $estudios = implode(",", $_POST["estudios"]);


y el código html

Código PHP:
Ver original
  1. <select multiple class="form-control" name="estudios[]" id="estudios">
  2.                                 <?php
  3.                                     $sql = "select distinct ele_cod, est_nom from bd_auxiliar..VistaTipoEstudio where ele_cod in (92,93,104,106,103,96,108) ";
  4.  
  5.                                     $conn->SetFetchMode(ADODB_FETCH_ASSOC);
  6.                                     $rs = &$conn->Execute($sql);
  7.  
  8.                                     while (!$rs->EOF) {
  9.                                         if($rs->fields["ele_cod"] == 92 || $rs->fields["ele_cod"] == 93 || $rs->fields["ele_cod"] == 96 || $rs->fields["ele_cod"] == 103 || $rs->fields["ele_cod"] == 104 || $rs->fields["ele_cod"] == 106 || $rs->fields["ele_cod"] == 108){
  10.                                             echo '<option value="'.$rs->fields["ele_cod"].'" selected>'.$rs->fields["est_nom"].' &nbsp;&nbsp; [Cod: '.$rs->fields["ele_cod"].'] </option>';
  11.                                         }else {
  12.                                             echo '<option value="'.$rs->fields["ele_cod"].'">'.$rs->fields["est_nom"].' &nbsp;&nbsp; [Cod: '.$rs->fields["ele_cod"].'] </option>';
  13.                                         }
  14.                                         $rs->MoveNext();
  15.                                     }
  16.                                 ?>
  17.                             </select>

Espero te sirva, saludos.
__________________
http://www.sp-vision.net
  #6 (permalink)  
Antiguo 13/01/2015, 12:01
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Capturar todos los value de un select multiple y enviar a una bd

Pero porqué usar Jquery si puedes usar una SESION, en fin... a la hora de la verdad resulta en lo mismo con menos código y sin posibilidades que el usuario bloquee el JS
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #7 (permalink)  
Antiguo 13/01/2015, 12:35
Avatar de alexisverano  
Fecha de Ingreso: septiembre-2008
Ubicación: La Habana.Cuba
Mensajes: 298
Antigüedad: 15 años, 7 meses
Puntos: 36
Respuesta: Capturar todos los value de un select multiple y enviar a una bd

ELproblema es que quiero cuando se hagan las selecciones y exista algun error el usuario pueda eliminar el elemento que selecciono de la primera lista, y despues cargar, estos valores en algo, ya sea una SESSION, y enviarlo a la db.

Ahora pregunto, como lleno la SESSION con todos los value del select???
  #8 (permalink)  
Antiguo 14/01/2015, 09:02
Avatar de alexisverano  
Fecha de Ingreso: septiembre-2008
Ubicación: La Habana.Cuba
Mensajes: 298
Antigüedad: 15 años, 7 meses
Puntos: 36
Respuesta: Capturar todos los value de un select multiple y enviar a una bd

Finalmente resolvi el problema, dejo el codigo para si alguien algun dia necesita algo similar.

Código Javascript:
Ver original
  1. function enviar_elementos(){
  2.     v = document.getElementById('obj_tematicoselect');
  3.     result = "";
  4.     for(i = 0 ; i < v.length ; i++) {
  5.         result += ( v.item(i).value)+' ';
  6.     }
  7.     alert(result);
  8. }

Código HTML:
Ver original
  1. <input type="submit" name="button" id="button" value="Enviar"  onclick="enviar_elementos();"/>


En el ejemplo que les dejo muestro el resultado en un mensaje (alert) para obtener los valores, pero para enviar a la db solo hay que tomar los valores de la variable "result"

Gracias a los que dedicaron su tiempo...

Etiquetas: bd, mysql, select, tabla
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 17:40.