Foros del Web » Programando para Internet » Javascript »

select submit y obtener valor

Estas en el tema de select submit y obtener valor en el foro de Javascript en Foros del Web. Hola no soy muy bueno en javascript, por favor necesito ayuda: tengo un select que automaticamente rellena otro (basado en la FAQ de javascript), al ...
  #1 (permalink)  
Antiguo 06/11/2006, 11:49
Avatar de temaqueja  
Fecha de Ingreso: agosto-2002
Ubicación: /dev/null/
Mensajes: 399
Antigüedad: 21 años, 8 meses
Puntos: 4
select submit y obtener valor

Hola no soy muy bueno en javascript, por favor necesito ayuda:

tengo un select que automaticamente rellena otro (basado en la FAQ de javascript), al segundo select le agregue onchange="submit();" porque mi intencion es que recargue la pagina para que un script en php tome la opcion elegida y rellene un tercer select desde la base de datos.

el problema:
en firefox el submit(); pasa siempre valor 0 elija lo que se elija.
en ie el submit(); pasa la posicion del elemento seleccionado no su valor.

todo lo demas funciona, asi que el problema radica en como hago para obtener el valor seleccionado en el segundo select y como ago para que trabaje igual en ambos navegadores?


Código HTML:
<script type="text/javascript">
<!--
//defino una serie de varibles Array para cada departamento
var provincias_07=new Array("---Seleccione-","02ACOMAYO","03ANTA","04CALCA","05CANAS","06CANCHIS","07CHUMBIVILCAS","01CUSCO","08ESPINAR","09LA CONVENCION","10PARURO","11PAUCARTAMBO","12QUISPICANCHI","13URUBAMBA")

....... mas de lo mismo

var provincias_25=new Array("---Seleccione-","03ATALAYA","01CORONEL PORTILLO","02PADRE ABAD","04PURUS")

//función que cambia las provincias del select de provincias en función del dpto que se haya escogido
function cambia_provincia(){
	//tomo el valor del select del dpto elegido
	var departamento
	departamento = document.frm2.departamento[document.frm2.departamento.selectedIndex].value
	//miro a ver si el depar está definido
	if (departamento != 0) {
		//si estaba definido, entonces coloco las opciones de la provincia correspondiente.
		//selecciono el array de provincia adecuado
		mis_provincias=eval("provincias_" + departamento)
		//calculo el numero de provincias
		num_provincias = mis_provincias.length
		//marco el número de provincias en el select
		document.frm2.provincia.length = num_provincias
		//para cada provincia del array, la introduzco en el select
		for(i=0;i<num_provincias;i++){
		   document.frm2.provincia.options[i].value=mis_provincias[i].substring(0,1)
		   document.frm2.provincia.options[i].text=mis_provincias[i].substring(2)
		}	
	}else{
		//si no había provincia seleccionada, elimino las provincias del select
		document.frm2.provincia.length = 1
		//coloco un guión en la única opción que he dejado
		document.frm2.provincia.options[0].value = "-"
	    document.frm2.provincia.options[0].text = "-"
	}
	//marco como seleccionada la opción primera de provincia
	document.frm2.provincia.options[0].selected = true
}
// -->
</script>

.....
<form action="form.php" method="post" name="frm2" id="frm2">
......

<select id="departamento" name="departamento" onChange="cambia_provincia()"><option value="0" selected>--Seleccione--</option><option value="01">AMAZONAS</option><option value="02">ANCASH</option><option value="03">APURIMAC</option><option value="04">AREQUIPA</option><option value="05">AYACUCHO</option><option value="06">CAJAMARCA</option><option value="24">CALLAO</option><option value="07">CUSCO</option><option value="08">HUANCAVELICA</option><option value="09">HUANUCO</option><option value="10">ICA</option><option value="11">JUNIN</option><option value="12">LA LIBERTAD</option><option value="13">LAMBAYEQUE</option><option value="14">LIMA</option><option value="15">LORETO</option><option value="16">MADRE DE DIOS</option><option value="17">MOQUEGUA</option><option value="18">PASCO</option><option value="19">PIURA</option><option value="20">PUNO</option><option value="21">SAN MARTIN</option><option value="22">TACNA</option><option value="23">TUMBES</option><option value="25">UCAYALI</option></select></td>

        <td width="25%">Provincia<br>
        <select name="provincia" id="provincia" onChange="submit();"></select>

..........
</form> 
cuando se ejecuta
en firefox:: echo $_POST['provincia'] me devuelve 0
en ie:: echo $_POST['provincia'] me devuelve la posicion del elemento no su valor.
__________________
_________________________
La computadora nació para resolver problemas que antes no existían
  #2 (permalink)  
Antiguo 06/11/2006, 12:54
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años, 1 mes
Puntos: 7
manda el codigo html de resultado de tu php pliss
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
  #3 (permalink)  
Antiguo 07/11/2006, 07:46
Avatar de temaqueja  
Fecha de Ingreso: agosto-2002
Ubicación: /dev/null/
Mensajes: 399
Antigüedad: 21 años, 8 meses
Puntos: 4
Cita:
Iniciado por FNX_NET Ver Mensaje
manda el codigo html de resultado de tu php pliss
el form se envia los datos a si mismo.
el script php al inicio de ese archivo recoge el valor de $_POST['provincia'] y ahi comienza mi suplicio porque siempre es cero

todo lo que he cortado del archivo es porque es irrelevante al problema.

al inicio del script he agregado un simple <? echo $_POST['provincia']; ?> que muestra el valor enviado, osea 0.

Alguien me puede sugerir que hacer?
__________________
_________________________
La computadora nació para resolver problemas que antes no existían
  #4 (permalink)  
Antiguo 07/11/2006, 09:29
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años, 1 mes
Puntos: 7
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<
title>Documento sin t&iacute;tulo</title>

<
script type="text/javascript">
 <!-- 
//defino una serie de varibles Array para cada departamento 
var provincias_07 = new Array("---Seleccione-","02ACOMAYO","03ANTA","04CALCA","05CANAS","06CANCHIS","07CHUMBIVILCAS","01CUSCO","08ESPINAR","09LA CONVENCION","10PARURO","11PAUCARTAMBO","12QUISPICANCHI","13URUBAMBA");
// ....... mas de lo mismo 
var provincias_25 = new Array("---Seleccione-","03ATALAYA","01CORONEL PORTILLO","02PADRE ABAD","04PURUS"); 
//función que cambia las provincias del select de provincias en función del dpto que se haya escogido
 
function cambia_provincia()
 {
  
//tomo el valor del select del dpto elegido var departamento 
 
departamento document.frm2.departamento[document.frm2.departamento.selectedIndex].value;
  
//miro a ver si el depar está definido 
  
if (departamento != 0)
   { 
  
//si estaba definido, entonces coloco las opciones de la provincia correspondiente.
   //selecciono el array de provincia adecuado
    
mis_provincias=eval("provincias_" departamento); 
    
//calculo el numero de provincias
     
num_provincias mis_provincias.length
     
//marco el número de provincias en el      select 
     
document.frm2.provincia.length num_provincias
     
//para cada provincia del array, la introduzco en el select 
     
for(i=0;i<num_provincias;i++)
         { 
         
document.frm2.provincia.options[i].value=mis_provincias[i].substring(0,2);
         
document.frm2.provincia.options[i].text=mis_provincias[i].substring(2);
          }
       }else
       { 
     
//si no había provincia seleccionada, elimino las provincias del select 
document.frm2.provincia.length 1
      
//coloco un guión en la única opción que he dejado
document.frm2.provincia.options[0].value "-"
document.frm2.provincia.options[0].text "-";
 } 
//marco como seleccionada la opción primera de provincia 
document.frm2.provincia.options[0].selected true
}
        
// -->
         
</script> 
         </head>
<body>
<form action="untitled.php" method="get" name="frm2" id="frm2"> 
 <select id="departamento" name="departamento" onChange="cambia_provincia()">
 <option value="0" selected>--Seleccione--</option>
 <option value="01">AMAZONAS</option>
 <option value="02">ANCASH</option>
 <option value="03">APURIMAC</option>
 <option value="04">AREQUIPA</option>
 <option value="05">AYACUCHO</option>
 <option value="06">CAJAMARCA</option>
 <option value="24">CALLAO</option>
 <option value="07">CUSCO</option>
 <option value="08">HUANCAVELICA</option>
 <option value="09">HUANUCO</option>
 <option value="10">ICA</option>
 <option value="11">JUNIN</option>
 <option value="12">LA LIBERTAD</option>
 <option value="13">LAMBAYEQUE</option>
 <option value="14">LIMA</option>
 <option value="15">LORETO</option>
 <option value="16">MADRE DE DIOS</option><option value="17">MOQUEGUA</option><option value="18">PASCO</option><option value="19">PIURA</option><option value="20">PUNO</option><option value="21">SAN MARTIN</option><option value="22">TACNA</option><option value="23">TUMBES</option><option value="25">UCAYALI</option></select></td> 
  <td width="25%">Provincia<br> 
  <select name="provincia" id="provincia" onChange="this.form.submit();"></select>
  </form>

</body>
</html> 
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
  #5 (permalink)  
Antiguo 08/11/2006, 09:28
Avatar de temaqueja  
Fecha de Ingreso: agosto-2002
Ubicación: /dev/null/
Mensajes: 399
Antigüedad: 21 años, 8 meses
Puntos: 4
FX_NET gracias, aunque me demore en encontrar la ayuda, en tu post, incluso ya habia posteado otra cosa. jejeje no me pusiste ningun comentario al respecto, = se agradece; el error estaba en:

document.frm2.provincia.options[i].value=mis_provincias[i].substring(0,1);

debia ser:

document.frm2.provincia.options[i].value=mis_provincias[i].substring(0,2);

el submit siempre estaba mandando bien la data despues de todo.
__________________
_________________________
La computadora nació para resolver problemas que antes no existían

Última edición por temaqueja; 08/11/2006 a las 10:22
  #6 (permalink)  
Antiguo 08/11/2006, 10:51
Avatar de FNX_NET  
Fecha de Ingreso: marzo-2004
Ubicación: EN EL INFIERNO.....
Mensajes: 1.707
Antigüedad: 20 años, 1 mes
Puntos: 7
Bueno el que quiere celeste que le cueste xD....
aps sorry por no poner cual era el error
__________________
:-D "Que se libere del cielo confinado; que mi cuerpo sea la espada de hielo negro que nos lleve al abismo; que ningún poder pueda detenernos...Destructora de las almas de los dioses!!!":adios:


:pirata:
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 20:08.