Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Select dependientes me funciona con firefox y no con I.E.

Estas en el tema de Select dependientes me funciona con firefox y no con I.E. en el foro de Frameworks JS en Foros del Web. tengo un codigo javascript y otro php; son selects dependientes. La subzona, depende de la zona, el javascript por medio de objeto XMLHttpRequest envia durante ...
  #1 (permalink)  
Antiguo 31/12/2008, 09:39
 
Fecha de Ingreso: octubre-2006
Mensajes: 18
Antigüedad: 18 años, 1 mes
Puntos: 0
Select dependientes me funciona con firefox y no con I.E.

tengo un codigo javascript y otro php; son selects dependientes.
La subzona, depende de la zona, el javascript por medio de objeto XMLHttpRequest envia durante el evento 'change' un id a un archivo php el cual llama a una funcion que, busca por ese id, y devuelve un responseText el cual es insertado (con innerHTML en el <td></td> donde va tabulado el select del formulario. ¿se entiende lo que trato de hacer? pues bien, el tema es que cuando lo pruebo en firefox, todo barbaro, pero cuando voy a una maquina con xp y su megainvento I.Eplorer , no anda.

Algo debo estar haciendo mal, voy a pegar el codigo aver si alguien que entienda más que yo me puede dar una mano:

el javascript (funciones.js):

addEvent(window,'load',inicializarEventos,false);

function inicializarEventos ()
{
var select1=document.getElementById('select1');
addEvent (select1,'change',mostrarSubzonas,false);
}

var conexion1;
function mostrarSubzonas ()
{
var codigo_zona=document.getElementById('select1').val ue;
if (codigo_zona!=0)
{
conexion1=crearXMLHttpRequest();
conexion1.onreadystatechange=procesarEventos;
conexion1.open('GET','../php/listar_subzonas_select.php?codigo_zona='+codigo_zo na,true);
conexion1.send(null);
}
}

function procesarEventos () {

var select2=document.getElementById("select2");
var carga=document.getElementById("carga");
if(conexion1.readyState == 4)
{
carga.innerHTML = '';
select2.innerHTML = conexion1.responseText;
}
else
{
carga.innerHTML = '<img src="../images/loading.gif">';
}

}



//***************************************
//Funciones comunes a todos los problemas
//***************************************
function addEvent(elemento,nomevento,funcion,captura)
{
if (elemento.attachEvent)
{
elemento.attachEvent('on'+nomevento,funcion);
return true;
}
else
if (elemento.addEventListener)
{
elemento.addEventListener(nomevento,funcion,captur a);
return true;
}
else
return false;
}

function crearXMLHttpRequest()
{
var xmlHttp=null;
if (window.ActiveXObject)
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
else
if (window.XMLHttpRequest)
xmlHttp = new XMLHttpRequest();
return xmlHttp;
}


A Continuación el codigo html, resultado de la pagina en php:

<table class='zonas' align='center'>
<FORM name='form' action='../php/ingresar_propiedad.php' method='post'>
<tr>
<td>Titulo:</td>

<td><input type='text' name='titulo' class='form_propiedades'></td>
</tr>
<tr>
<td>Descripci&oacute;n:</td>
<td><textarea name='descripcion' class='form_propiedades'></textarea></td>
</tr>
<tr>
<td>Zona</td>
<td><select id='select1' name='zonas' class='form_propiedades'><option value='0'>Seleccione la Zona</option><option value='1'>Maldonado</option><option value='2'>Punta del Este</option>

</td><span id='carga'></span>
</tr>
<tr>
<td>Sub-zona</td>
<td><select id='select2' name='subzonas' class='form_propiedades'></select></td>
</tr>
<tr>
<td>Operaci&oacute;n</td>
<td><select id='operacion' name='operacion' class='form_propiedades'><option value='0'>Seleccione el tipo de operacion</option><option value='1'>Venta</option><option value='2'>Alquiler</option>

</td>
</tr>
<tr>
<td>Tipo de Propiedad:</td>
<td><select id='tipo' name='tipo' class='form_propiedades'><option value='0'>Seleccione el tipo de propiedad</option><option value='1'>Casa</option><option value='2'>Apartamento</option></select></td>
</td>
</tr>
<tr>
<td>Precio:</td>

<td><input type='text' name='precio' class='form_propiedades'></td>
</tr>
<tr>
<td><input type='hidden' name='nivel' value='1'></td>
<td><input type='submit' value='Ingresar'></td>
</tr>
</FORM>
</TABLE>



Desde ya, gracias a la gente de forosdelweb por la posiblidad de un foro tan completo; y desde ya gracias a quien me tienda una mano.

Salute y feliz 2009!
  #2 (permalink)  
Antiguo 31/12/2008, 13:31
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 10 meses
Puntos: 126
Respuesta: Select dependientes me funciona con firefox y no con I.E.

Hola

Prueba a cambiar esto

Código javascript:
Ver original
  1. function addEvent(elemento,nomevento,funcion,captura)
  2. {
  3. if (elemento.attachEvent)
  4. {
  5. elemento.attachEvent('on'+nomevento,funcion);
  6. return true;
  7. }
  8. else
  9. if (elemento.addEventListener)
  10. {
  11. elemento.addEventListener(nomevento,funcion,captur a);
  12. return true;
  13. }
  14. else
  15. return false;
  16. }
  17.  
  18.  
  19. function crearXMLHttpRequest()
  20. {
  21. var xmlHttp=null;
  22. if (window.ActiveXObject)
  23. xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  24. else
  25. if (window.XMLHttpRequest)
  26. xmlHttp = new XMLHttpRequest();
  27. return xmlHttp;
  28. }

por esto otro

Código javascript:
Ver original
  1. function addEvent(elemento,nomevento,funcion,captura)
  2. {
  3. if (elemento.attachEvent)
  4. {
  5. var f=function(){
  6. funcion.call(elemento,window.event);
  7. }
  8. elemento.attachEvent('on'+nomevento,f);
  9. return true;
  10. }
  11. else
  12. if (elemento.addEventListener)
  13. {
  14. elemento.addEventListener(nomevento,funcion,captur a);
  15. return true;
  16. }
  17. else
  18. return false;
  19. }
  20.  
  21.  
  22. function crearXMLHttpRequest()
  23. {
  24. var ajaxs = ["Msxml2.XMLHTTP","Msxml2.XMLHTTP.4.0","Msxml2.XMLH TTP.5.0","Msxml2.XMLHTTP.3.0","Microsoft.XMLHTTP"];
  25.     var ajax = false;
  26.     for(var i=0 ; !ajax && i<ajaxs.length ; i++){
  27.         try{
  28.             ajax = new ActiveXObject(ajaxs[i]);   // Internet Explorer
  29.         }
  30.         catch(e) {
  31.             ajax = false;
  32.         }
  33.     }
  34.     if(!ajax && typeof XMLHttpRequest!='undefined') {
  35.         ajax = new XMLHttpRequest();  // Firefox, Opera 8.0+, Safari
  36.     }
  37.     return ajax;
  38. }

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />

Última edición por Adler; 31/12/2008 a las 13:39
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 18:00.