Bueno aki lo veis
Código HTML:
http://www.inmueblevirtual.net/manu/select_dependientes.php
| ||||
Ñ y espacios en Firefox Hola, he probado un script de zaqpz, y el problema esta en q solo me funciona bien en IE ya que tengo una opcion del select principal q es A coruña y en los otros navegadores no me trae su array dependiente?? Bueno aki lo veis Código HTML: http://www.inmueblevirtual.net/manu/select_dependientes.php
__________________ Inmuebles de Galicia:: www.inmueblevirtual.net Compartir piso Galicia:: www.inmueblevirtual.net/foro |
| ||||
nada con encodeURI lo unico q ocurre es q tpc va en IE,, pq dices q puede dar problemas el innerHTML?? si obtengo un response XML lo puedo meter directamente en el combo??, Gracias
__________________ Inmuebles de Galicia:: www.inmueblevirtual.net Compartir piso Galicia:: www.inmueblevirtual.net/foro |
| ||||
Mira... para ahorrarnos mas problemas simplemente elimina la Ñ del value. Tu puedes mostrar A Coruña como el combo pero que su value sea A_coruna no? Si quieres jugar con variables de formulario bien llamadas quizás seria mejor que aprendieses a lanzar ajax con post en vez de con get que te dará menos problemas al poder definir tu Charset en un header. En cuanto a cargar combos ppor innerHTML a mi me ha dado problemas en firefox pues no mostraba los resultados... Lo que hice fue cargar directamente el Los options como un archivo xml y cargarlo por responseXML después simplemente tienes que buscar tu select por id y unirlo con appendChild document.getElementById("").appdenChild(ob_xhr.res ponseXML); |
| ||||
Como es eso de aprender a enviarlo por post?? no se lanzan igual?? donde puedo leer algo sobre eso? Gracias X cierto el link al ej es:: http://www.inmueblevirtual.net/ajax/ajaxprovincias.php
__________________ Inmuebles de Galicia:: www.inmueblevirtual.net Compartir piso Galicia:: www.inmueblevirtual.net/foro |
| ||||
jejeje pues mucha diferencia no hay la verdad :P Pero vamos tu haces un get usando variables... lo suyo sería que lo enviases por post y en el send indicases los argumentos en cadena del envio. La gracia es que cuando usas el encodeURI y luego setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=LO_QUE_USES); Te aseguras de que envias bien los caracteres. En webintenta.com (no se si se escribe asi, yo la leo por rss) vi hace poco una explicación sobre el tema. |
| ||||
ya q estamos y para dar la lata un poco mas.. lo estub intentando con XML pero me dice interfaz no compatible?? es asi?? var xmlDoc = ajax.responseXML; document.getElementById("fila_2").appendChild(xmlD oc);
__________________ Inmuebles de Galicia:: www.inmueblevirtual.net Compartir piso Galicia:: www.inmueblevirtual.net/foro |
| ||||
creo que si... lo que pasa es que tienes que mandarle un fichero xml no texto a lo bestia los ficheros xml empiezan por definirse a si mismos <?xml version = '1.0' encoding = 'iso-8859-1'?> o <?xml version = '1.0' encoding = 'utf-8'?> Y tienen que ser validos con todas las etiquetas abiertas o cerradas... vamos que <?xml version = '1.0' encoding = 'iso-8859-1'?> Hola! no es valido <?xml version = '1.0' encoding = 'iso-8859-1'?> <MI_COMENTARIO>HOLA</MI_COMENTARIO> si que lo sería. en este caso... si no me equivoco (buf, lo tengo un poco lejano) seria algo asi como <?xml version = '1.0' encoding = 'iso-8859-1'?> <option value="la_coruña">A Coruña</option> <option... Aunque ahora no recuerdo si el standat te obligaba a que todo estubiese contenido en solo una etiqueta... es decir. <?xml version = '1.0' encoding = 'iso-8859-1'?> <XML> <option value="la_coruña">A Coruña</option> <option... </XML> En ese caso luego para unirlo necesitarias hacer algo asi... var xmlDoc = ajax.responseXML; var options=xmlDoc.getElementsByTagName("option"); for (var i=0; i<options.length; i++) { document.getElementById("fila_2").appendChild(opti ons[i]); } |
| ||||
bueno gracias x tus indicaciones, al final he optado por cambiar el valor directamente en el select y continuar con el response text un detalle.. a qe te refieres cuando me dices:: Es posible que en un futuro rellenar los combos con innerHTML te de problemas... Gracias de nuevo
__________________ Inmuebles de Galicia:: www.inmueblevirtual.net Compartir piso Galicia:: www.inmueblevirtual.net/foro |
| ||||
Bueno, en mi experiencia particular me he encontrado varias veces con varios errores al trabajar con innerHTML y formularios. Por ejemplo, puedes encontrarte que cargar partes del formulario enteras mediante ajax la cosa no vaya bien(por ejempo al seleccionar un checkbox cargar varios inputs y textareas para que se complete más info). Los campos nuevos dependiendo del navegador y el formulario en si mismo puenden no enviarse como form y tener que añadirlos luego llamando a cada id nueva. Así hay muchos ejemplos... En el caso de los combos creo que el problema se daba al insertar dentro de un select por innerHTML los options a lo bestia... es decir. yo tengo: <select id="miselect"><option value="">Seleccione</option></select> y quiero cargarle dentro los options. Probando con cargar con ajax y luego: document.getElementById("miselect").innerHTML=XHTo bj.responseText; En ocasiones (no siempre, el problema es que no se porque a veces si y a veces no) incluye el texto dentro de la etiqueta si... pero no detecta los options como tales y no puedes seleccionarlos. Aki por ejemplo: http://www.parabebes.com tube que crear el option que dijese "cargando" dentro del combo por DOM con createElement("option") porque si no en firefox no salia "cargando"... Mientras no te pase quedate trankilo... ahora cuando veas problemas la mayor parte de las veces se solucionarán creadno los elementos por DOM y pasando del innerHTML. |
| |||
Cita: Puedes leer las diferencias en http://www.forosdelweb.com/f127/open-get-post-391004/Sobre los caracteres especiales el tema es que el objeto XMLHttpRequest trabaja con la codificación UTF-8 y debes ser cuidadoso tanto al recibir información con el objeto como al enviarla. Un buen artículo al respecto lo puedes encontrar en http://php.apsique.com/ajax/utf8. Saludos. Última edición por zaqpz; 08/10/2006 a las 01:04 |