Foros del Web » Programando para Internet » PHP »

Obtener dos valores de un combo

Estas en el tema de Obtener dos valores de un combo en el foro de PHP en Foros del Web. Buenasss. Aqui estamos otra vez con un pequeño problema. La cuestion: Relleno un combo con una consulta. Le doy a cada opcion del combo un ...
  #1 (permalink)  
Antiguo 10/12/2008, 06:06
 
Fecha de Ingreso: abril-2005
Mensajes: 85
Antigüedad: 19 años
Puntos: 0
Obtener dos valores de un combo

Buenasss.

Aqui estamos otra vez con un pequeño problema.

La cuestion: Relleno un combo con una consulta. Le doy a cada opcion del combo un valor. Lo tipico:
Código HTML:
<SELECT name="Ntipo" class="form" id="Ntipo" onChange="llenar_tarea();"> 
<option value="" SELECTed="SELECTed">.: Seleccione tipo :.</option> 
<option  value="45">Option1</option> 
<option  value="46"> Option2 </option> 
<option  value="47"> Option3 </option> 
<option  value="48"> Option4 </option> 

</SELECT> 
Cuando selecciono un valor mediande onChange=llenar_tarea(); Necesito que me guarde el valor del option en un campo y otro valor de la consulta en otro campo.

Lo que quiero es que cada option me guarde dos valores, así cuando ejecuto la funcion de java script me guarde el valor (45,47...) en un campo, y otro valor en otro campo de texto.

No se si me he explicado o si es posible hacer esto. Mi intencion es hacerlo sin tener que llamar a la pagina php.

Gracias y un saludo.
  #2 (permalink)  
Antiguo 10/12/2008, 06:44
 
Fecha de Ingreso: mayo-2008
Mensajes: 489
Antigüedad: 15 años, 11 meses
Puntos: 8
Respuesta: Obtener dos valores de un combo

Felices fiestas Xavi, no está mmuy claro cual es el segundo valor que quieres almacenar. ¿lo selecciona el usuario o la máquina dependiendo de la primera opcion? si ambos son seleccionados por el usuario deberas hacer un select multiple para así poder almacenar los valores pero si lo hace la máquina, deberás explicar mejor lo que necesitas.

Suerte
  #3 (permalink)  
Antiguo 10/12/2008, 07:24
Avatar de XLogus  
Fecha de Ingreso: noviembre-2008
Ubicación: AQP
Mensajes: 495
Antigüedad: 15 años, 5 meses
Puntos: 19
Respuesta: Obtener dos valores de un combo

Hola
Es facil de hacer lo que deseas basta usar un poco de DOM, si usas algun framework como jquery se hace en 3 lineas de codigo si lo quieres hacer a puro javascript seria algo asi:
Primero en tu combo:
Código HTML:
<SELECT name="Ntipo" class="form" id="Ntipo" onChange="llenar_tarea(this.value);"> 
y ademas debes crear un campo texto o un campo hidden donde guardar el valor con id="micampo"
Código:
function llenar_tarea(valor_combo) {
  micampo=document.getElementById("micampo");
  micampo.value=valor_combo;
}
  #4 (permalink)  
Antiguo 10/12/2008, 08:02
 
Fecha de Ingreso: abril-2005
Mensajes: 85
Antigüedad: 19 años
Puntos: 0
Respuesta: Obtener dos valores de un combo

Gracias a los dos, pero me explicare un poco mejor.

al hacer la consulta quiero recuperar dos valores para cada option.

<select name="Ntipo" onChange="llenar_tarea();">
<option value=$campo1 value2=$campo2 name="nombre_option"> option 1 </option>
</select>

YA se que lo de arriba esta mal.

La intencion es que al llamar a la funcion

<script>
function llenar_tarea(){
document.form1.campo1.value = document.form1.Ntipo.value;
document.form1.campo2.value = document.form1.Ntipo.value2;
}
</script>

Perdon por no saber esplicarme demasiado bien. El problema no es hacer la consulta. La cuestion es que quiero asignarle dos valores a cada option.

Muchas gracias.
  #5 (permalink)  
Antiguo 10/12/2008, 08:08
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Respuesta: Obtener dos valores de un combo

Hola xabi

Te recomiendo que pongas los dos valores en el value separados, por ejemplo, por punto y coma, luego los separas con split

Código html:
Ver original
  1. <option value="valor1;valor">

Saludos,
  #6 (permalink)  
Antiguo 10/12/2008, 08:15
 
Fecha de Ingreso: abril-2005
Mensajes: 85
Antigüedad: 19 años
Puntos: 0
De acuerdo Respuesta: Obtener dos valores de un combo

Cita:
Iniciado por JavierB Ver Mensaje
Hola xabi

Te recomiendo que pongas los dos valores en el value separados, por ejemplo, por punto y coma, luego los separas con split

Código html:
Ver original
  1. <option value="valor1;valor">

Saludos,
Gracias a todos. Aunque no sea la mas adecuada para mi situacion, creo que voy a utilizar esta ultima sugerencia.

Un saludo.
  #7 (permalink)  
Antiguo 10/12/2008, 08:46
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Respuesta: Obtener dos valores de un combo

No comprendo bien, puede que la opción de JavierB sea la mejor (si la habré usado :P), pero fijate si usando un select multiple te soluciona le problema:

Código:
<select multiple="multiple" name="Ntipo[]" id="Ntipo[]" ...>
....
</select>
Luego no es más que un for en js sobre el array Ntipo[].

Nota: Tené en cuenta que si lo queres enviar a un PHP deberás hacer un iteracion.options[i].selected = true de cada option sino te llegará un solo elemento marcado.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #8 (permalink)  
Antiguo 10/12/2008, 09:54
 
Fecha de Ingreso: abril-2005
Mensajes: 85
Antigüedad: 19 años
Puntos: 0
Respuesta: Obtener dos valores de un combo

Cita:
Iniciado por nicolaspar Ver Mensaje
No comprendo bien, puede que la opción de JavierB sea la mejor (si la habré usado :P), pero fijate si usando un select multiple te soluciona le problema:

Código:
<select multiple="multiple" name="Ntipo[]" id="Ntipo[]" ...>
....
</select>
Luego no es más que un for en js sobre el array Ntipo[].

Nota: Tené en cuenta que si lo queres enviar a un PHP deberás hacer un iteracion.options[i].selected = true de cada option sino te llegará un solo elemento marcado.
OK. Gracias lo probare a ver que resultado me da.
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 06:12.