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

Problema en IE, ->XAJAX

Estas en el tema de Problema en IE, ->XAJAX en el foro de Frameworks JS en Foros del Web. Buenas tardes amigos... Tengo un problema con un select (el clásico caso de las provincias x regiones...) que se muestra perfectamente en Mozilla, pero que ...
  #1 (permalink)  
Antiguo 13/10/2009, 14:37
 
Fecha de Ingreso: octubre-2009
Mensajes: 3
Antigüedad: 14 años, 6 meses
Puntos: 0
Problema en IE, ->XAJAX

Buenas tardes amigos...
Tengo un problema con un select (el clásico caso de las provincias x regiones...) que se muestra perfectamente en Mozilla, pero que se resiste a mostrarse en IE. Este es cargado asincrónicamente a través de XAJAX, y después de devanarme la cabeza un poco, y descartar ciertas posibilidades, resolví ponerlo aquí, a ver si alguien podría ayudarme...

require ('includes/_xajax/xajax_core/xajax.inc.php');


//instanciamos el objeto de la clase xajax
$xajax = new xajax();
$xajax->setCharEncoding('ISO-8859-1');
$xajax->configure('decodeUTF8Input',true);
//$xajax->configure("debug",true) ;

$arr_region = get_region(_conect()) ;

function IGET_provincias($id_region)
{
$arr_p = get_provincia($id_region, _conect()) ;


$nuevo_select = "<option value='0'>Elegir provincia</option>";
for ($i=0; $i<count($arr_p); $i++){

$nuevo_select .= '<option value="' . $arr_p[$i][0] . '">' . $arr_p[$i][2] . '</option>';
}

return $nuevo_select;
}



function INGET_provincias($id_region){
$respuesta = new xajaxResponse();
$respuesta->setCharacterEncoding('utf-8');

if ($id_region==0){
$nuevo_select = '<option value=0>Elegir region</option>';
}else{
$nuevo_select = IGET_provincias($id_region);
}
$respuesta->Assign("provincia", "innerHTML", ltrim($nuevo_select, "S"));

return $respuesta;
}


la página en cuestión está codigficada UTF-8:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

e inspeccionando en el debug con el firebug, la respuesta que recojo es la misma en los dos navegadores, por ejemplo:

RECEIVED [status: 200, size: 318 bytes, time: 157ms]:<?xml version="1.0" encoding="utf-8" ?><xjx><cmd cmd="as" id="provincia" prop="innerHTML"><![CDATA[S<option value='0'>Elegir provincia</option><option value="1">Pinar del Río</option><option value="2">La Habana</option><option value="3">Ciudad de la Habana</option><option value="4">Matanzas</option>]]></cmd></xjx>

Lo curioso es que usando otra página que tiene lo mismo, excepto el acceso a la BD, el IE llena su select sin problema... y todas las tablas están codificadas en UTF-8...

cualquier ayuda, será bien recibida....
muchas gracias de antemano...
  #2 (permalink)  
Antiguo 13/10/2009, 15:01
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Problema en IE, ->XAJAX

prueba re-codificando con utf8_encode, al parecer la última versión de xajax tiene ese pequeño inconveniente al pasar cadenas en IE, con firefox y los demás no pasa.

prueba esto a ver si te sirve:

$objresponse->alert('perú'); <-- el acento es el problema, luego intenta:
$objresponse->alert(utf8_encode('perú')); <-- a mi me funcionó
  #3 (permalink)  
Antiguo 14/10/2009, 09:48
 
Fecha de Ingreso: octubre-2009
Mensajes: 3
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: Problema en IE, ->XAJAX

Cita:
Iniciado por maycolalvarez Ver Mensaje
prueba re-codificando con utf8_encode, al parecer la última versión de xajax tiene ese pequeño inconveniente al pasar cadenas en IE, con firefox y los demás no pasa.

prueba esto a ver si te sirve:

$objresponse->alert('perú'); <-- el acento es el problema, luego intenta:
$objresponse->alert(utf8_encode('perú')); <-- a mi me funcionó
El lío no venía por el encoding. Esto que me sugerías ya lo había probado, o alguna variante. Pero resolví poniendo a escribir el innerhtml de la capa que contiene el select (escribiendo todo el select), en vez del innerhtml del select en sí... por algún motivo el IE sí se traga esto, y funciona bien...

function IGET_provincias($id_region)
{
$arr_p = get_provincia($id_region, _conect()) ;


$nuevo_select = '<select name="provincia" id="provincia" style="width:160px; font-size:11px; float:left; height:100%;" onchange="javascript:redirect_ar(document.territor io_form.provincia.selectedIndex)">' ;
$nuevo_select .= "<option value='0'>Elegir provincia</option>";
for ($i=0; $i<count($arr_p); $i++){
//for ($i=0; $i<2; $i++){
$nuevo_select .= '<option value="' . $arr_p[$i][0] . '">' . $arr_p[$i][2] . '</option>';
}
$nuevo_select .= "</select>";

return $nuevo_select;
}

function INGET_provincias($id_region){
$respuesta = new xajaxResponse();
$respuesta->setCharacterEncoding('utf-8');

if ($id_region==0){
$nuevo_select = '<option value=0>Elegir region</option>';
}else{
$nuevo_select = IGET_provincias($id_region);
}
$respuesta->Assign("cpa_prov", "innerHTML", $nuevo_select);

// $respuesta->alert('perú') ;
// $respuesta->alert(utf8_encode('perú'));

return $respuesta;
}

gracias de todas formas...
un saludo...
  #4 (permalink)  
Antiguo 13/12/2009, 22:00
 
Fecha de Ingreso: octubre-2008
Mensajes: 3
Antigüedad: 15 años, 6 meses
Puntos: 0
De acuerdo Respuesta: Problema en IE, ->XAJAX

Cita:
Iniciado por maycolalvarez Ver Mensaje
prueba re-codificando con utf8_encode, al parecer la última versión de xajax tiene ese pequeño inconveniente al pasar cadenas en IE, con firefox y los demás no pasa.

prueba esto a ver si te sirve:

$objresponse->alert('perú'); <-- el acento es el problema, luego intenta:
$objresponse->alert(utf8_encode('perú')); <-- a mi me funcionó
muchas gracias por responder a esa pregunta (aunque no la realice yo) ya que me ha sido de gran ayuda ya q eso exactamente me pasaba y con la funcion utf8_encode() que propuso pude salir de ese gran bache... muchas gracias
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 15:46.