Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Select varias columnas. Seleccionar valor

Estas en el tema de Select varias columnas. Seleccionar valor en el foro de Javascript en Foros del Web. Buenas noches: Tengo un select que recoge los valores de una consulta mysql. Cada opción recoge 6 valores. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código PHP: Ver original echo ...
  #1 (permalink)  
Antiguo 21/02/2015, 14:43
 
Fecha de Ingreso: noviembre-2005
Mensajes: 146
Antigüedad: 18 años, 5 meses
Puntos: 1
Select varias columnas. Seleccionar valor

Buenas noches:
Tengo un select que recoge los valores de una consulta mysql.
Cada opción recoge 6 valores.

Código PHP:
Ver original
  1. echo "<td><select type=''  id='A02' class= 'max' name='txtProducto' value='' onclick='seleccionar_servicios()''>
  2.                                             <option value=''></option>;";
  3.                             $sqlservicios="SELECT Id_Servicio, Servicio, Producto, Tipo, Precio, Coste, Acronimo
  4.                                         FROM servicios";
  5.                                         $MyDataservicios=mysqli_query($cn,$sqlservicios);
  6.                                         while($resultservicios = mysqli_fetch_array($MyDataservicios))
  7.                                             {
  8.                                         echo "<option value  ='".$resultservicios['0']."'>"
  9.                                                                 .$resultservicios['2']
  10.                                                                 .$resultservicios['3']
  11.                                                                 .$resultservicios['4']
  12.                                                                 .$resultservicios['5']
  13.                                                                 .$resultservicios['6']."
  14.                                                 </option>";
  15.                                             }
El select tendra un envento que tiene como función rellenar inputs con los valores

Necesito saber como puedo con javascritp extraer el valor de las diferentes columnas ya que rellenaran distintos inputs del formulario.
Usando :
Código Javascript:
Ver original
  1. var var_select = document.getElementById('A02').value;
sólo obtengo el valor de la primera columna y necesito asignar el valor del resto de las columnas a otras variables.
Espero haberme expresado correctamente.
  #2 (permalink)  
Antiguo 21/02/2015, 15:19
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Select varias columnas. Seleccionar valor

Solo toma el primer valor porque es el único que asignas al atributo value de la opción. Si quieres tomar todos, debes de asignarlos a dicho atributo, aunque también puedes concatenar dicho valor con el contenido de la opción.

Código Javascript:
Ver original
  1. var select = document.getElementById("A02"), //El <select>
  2.     valor = select.value, //El valor de la opción seleccionada
  3.     contenido = select[select.selectedIndex].innerText, //El contenido de la opción seleccionada
  4.     completo = valor + contenido; //Concateno el valor y el contenido

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 21/02/2015, 16:22
 
Fecha de Ingreso: noviembre-2005
Mensajes: 146
Antigüedad: 18 años, 5 meses
Puntos: 1
Respuesta: Select varias columnas. Seleccionar valor

Hola:
Gracias por atenderme.
Creo que no entiendo tu exposición.
No consiste en seleccionar una opción. La opción ya ha sido seleccionada al ser tomada de una lista generada mediante una consulta a base de datos.
Ahora se trata de manipular las columnas de esa opción.
La opción es un registro de una tabla.
El registro tiene 6 campos.
Y quiero acceder al contenido de esos campos, no a la lista de las opciones disponibles.
  #4 (permalink)  
Antiguo 21/02/2015, 17:08
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Select varias columnas. Seleccionar valor

Y es precisamente lo que te dije. Lee bien y prueba el código.
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 22/02/2015, 03:24
 
Fecha de Ingreso: noviembre-2005
Mensajes: 146
Antigüedad: 18 años, 5 meses
Puntos: 1
Respuesta: Select varias columnas. Seleccionar valor

Hola:
Disculpa la tardanza. Ajuste horario.
Había probado el código pero no funcionaba. Al parecer es porque uso Firefox y en ese caso en lugar de:
Código Javascript:
Ver original
  1. contenido = select[select.selectedIndex].innerText,
se debe usar:
Código Javascript:
Ver original
  1. contenido = select[select.selectedIndex].textContent,
link aclaratorio de esto: http://junihh.com/capturar-texto-con...t-textcontent/
Por lo que el código que Alexis88 me has pasado me ha funcionado y obtengo el contenido. Pero necesito acceder a ese contenido de manera fraccionada. Supongamos que el registro tiene 6 campos con los valores:
A B C D E F
Con el código obtengo
Contenido = ABCDEF
Lo que busco es:
Gracias.
Contenido1 = A
Contenido2 = B
Contenido3 = C
Contenido4 = D
Contenido5 = E
Contenido6 = F
Esto me permitirá asignar a cada input el valor de contenido que me interesa.
  #6 (permalink)  
Antiguo 22/02/2015, 06:54
 
Fecha de Ingreso: noviembre-2005
Mensajes: 146
Antigüedad: 18 años, 5 meses
Puntos: 1
Respuesta: Select varias columnas. Seleccionar valor

Bueno, mientras obtengo una solución más adecuada, si la hay, se me ha ocurrido trabajar el contenido como un array.
Para ello he utilizado la función Javascritp .split() donde el carácter que permite separar el contenido es la coma, de tal manera que sería .split(",").
Para ello he modificado algunas cosas en el código:
Código PHP:
Ver original
  1. $sqlservicios="SELECT Id_Servicio, Servicio, Producto, Tipo, Precio, Coste, Acronimo
  2.                                         FROM servicios";
  3.                                         $MyDataservicios=mysqli_query($cn,$sqlservicios);
  4.                                         while($resultservicios = mysqli_fetch_array($MyDataservicios))
  5.                                             {
  6.                                         echo "<option value  ='".$resultservicios['0']."'>"
  7.                                                                 .",".$resultservicios['2']
  8.                                                                 .",".$resultservicios['4']
  9.                                                                 .",".$resultservicios['5']
  10.                                                                 .",".$resultservicios['6'].
  11.                                                                 "
  12.                                                 </option>";
Es decir he insertado la coma .",". en los valores pasados a option. de esta manera obtengo una cadena de caracteres delimitados por coma:
A,B,C,D,E,F

Ahora en la función javascript que permite rellenar los campos que me interesan utilizo este código:
Código Javascript:
Ver original
  1. function seleccionar_servicios()
  2.     {
  3.                 //document.getElementById('S05').value = document.getElementById('4').value;
  4.  
  5.             var select = document.getElementById("A02"); //El <select>
  6.             valor = select.value; //El valor de la opción seleccionada
  7.             //contenido = select[select.selectedIndex].innerText; //El contenido de la opción seleccionada
  8.             contenido1     = select[select.selectedIndex].innerText;
  9.             contenido2     = select[select.selectedIndex].textContent; //Concateno el valor y el contenido
  10.             if(contenido1 != undefined)
  11.             {
  12.                 var palabras = contenido1.split(",");
  13.                 document.getElementById("A02").value = palabras[1];
  14.                 document.getElementById("A08").value = palabras[2];
  15.                 document.getElementById("A09").value = palabras[3];
  16.             }
  17.             else
  18.             {
  19.                 var palabras = contenido2.split(",");
  20.                 document.getElementById("A02").value = palabras[1];
  21.                 document.getElementById("A08").value = palabras[2];
  22.                 document.getElementById("A09").value = palabras[3];
  23.             }
De momento parece que funciona, aunque es cierto que con :
Código Javascript:
Ver original
  1. document.getElementById("A02").value = palabras[1];
tengo un problema que resolver, ya que el input aparece el valor completo, es decir:
"A,B,C,D,E,F"
Cuando sólo debería aparecer "A".
Así que seguiremos peleando.
Quedo pendiente de que Alexis88 pueda echarle un vistazo y sugerirme algo más adecuado. O cualquier otro miembro que se interese. Si no hay respuesta posteare SOLUCIONADO.
Gracias.
  #7 (permalink)  
Antiguo 22/02/2015, 12:01
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Select varias columnas. Seleccionar valor

No era necesario que coloques comas en el contenido ya que las cadenas son como arrays puesto que puedes acceder a determinadas posiciones en ella, así como recorrerlas con bucles.

Creo que esto es lo que buscas hacer. Como verás, es prácticamente lo que te he venido explicando, con la salvedad de que ahora utilizo el atributo text para tomar el contenido de la opción. Échale un vistazo, analízalo, adáptalo y pruébalo.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #8 (permalink)  
Antiguo 24/02/2015, 13:39
 
Fecha de Ingreso: noviembre-2005
Mensajes: 146
Antigüedad: 18 años, 5 meses
Puntos: 1
Respuesta: Select varias columnas. Seleccionar valor

Corecto. Eso es lo que busco.
Gracias por todo Alexis88. Y como no por el curro que te has dado con el ejemplo.
Doy tema por cerrado.
Un saludo.

Etiquetas: columnas, formulario, input, select, valor
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 12:22.