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

Xajax + IE: problema con actualizacion de select

Estas en el tema de Xajax + IE: problema con actualizacion de select en el foro de Frameworks JS en Foros del Web. Hola, Estoy comenzando en esto de programar en AJAX y comencé por XAJAX para ir conociendo esto poco a poco. Hasta ahora todo han sido ...
  #1 (permalink)  
Antiguo 23/09/2009, 11:40
 
Fecha de Ingreso: noviembre-2004
Mensajes: 37
Antigüedad: 19 años, 5 meses
Puntos: 0
Xajax + IE: problema con actualizacion de select

Hola,
Estoy comenzando en esto de programar en AJAX y comencé por XAJAX para ir conociendo esto poco a poco. Hasta ahora todo han sido problemas normales....pero una vez tengo casi terminada mi aplicación, empece a probar con varios navegadores para depurar código. y para variar el quebradero de cabeza esta siendo con el IE6 -7 y 8.

Resulta que tengo una aplicación tipo el selector de opciones en los equipos de la apple store para que os hagáis una idea, el caso es que me funciona perfectamente en todos los navegadores, pero en el IE, cuando cambias de select te actualiza la información 2 click de ratón después, y no le veo ningún sentido, o en el onload() que tengo para cargar datos predeterminados, no carga nada del ajax. solo si hago un refresco de pantalla, entonces ya si lo carga...es como que va un paso por detrás.

si quereis ver el problema lo tengo ahora mismo en esta direccion
www.ecprofesional.com/informatica
poned de email [email protected] y podreis comprobar este error tan raro.

os añado el codigo que tengo para que al arrancar cargue por defecto una configuracion.

Código:
	<script type='text/javascript'>

		window.onload = function() {
			
			xajax_iniciar('<? echo $modelo; ?>');

		}

	</script>
Código PHP:
function iniciar($mod)
{
     
//he quitado los accesos a la base de datos
    
    //Ejecuto la sentencia 
    
$rs1 mysql_query($ssql1,$conn); 

    
//creamos el objeto de respuesta XAJAX
    
$objResponse = new xajaxResponse();
    
    
//$objResponse->assign('precio', 'innerHTML',"$id ");
    
if (!isset($_SESSION["actual"])){ 
               
$_SESSION["actual"] = 0;
        }else{ 
        while (
$row1 mysql_fetch_array($rs1))
        { 
            
$cat=$row1["categoria"];
            
$ssql2 "SELECT * FROM opciones WHERE modelo='$mod' AND categoria='$cat'"
            
$rs2 mysql_query($ssql2,$conn);
            
$contador=0;
            while (
$row2 mysql_fetch_array($rs2))
            {    
                
//$objResponse->assign('opt'.$row2["id"], 'innerHTML',$row2["opcion"] );
                
if($contador==0)
                {
                    
$_SESSION["carrito"] [$cat] = $row2["precio"];
                    
$precio=$row2["precio"];
                    
$objResponse->assign("op".$row2["id"], 'innerHTML'," &nbsp;SELECCION");
                    
$objResponse->assign("opt".$row2["id"], 'style.color'," black");
                    
$objResponse->assign("opt".$row2["id"], 'style.font-weight'," bold");
                    
$objResponse->assign('img_'.$row2["categoria"], 'src',"../images/categorias/".$row2["imagen"].".jpg" );
                    
$contador++;
                }
                else
                {
                    
$diferencia=$row2["precio"]-$precio;
                    if(
$diferencia<0)
                        
$signo="  ";
                    else
                        
$signo=" + ";
                    
$objResponse->assign('op'.$row2["id"], 'innerHTML',$signo.$diferencia );
                    
$objResponse->assign("opt".$row2["id"], 'style.color',"#006699");
                    
$objResponse->assign("opt".$row2["id"], 'style.font-weight'," normal");
                }
            }
        }
            foreach (
$_SESSION["carrito"] as $valor){ 
            
$resultado=$resultado+$valor
            } 
            
$_SESSION["actual"] = $resultado;
        }
    
    
$objResponse->assign('precio''innerHTML',$_SESSION["actual"] );
    
    return 
$objResponse;
}
$xajax->processRequest(); 
  #2 (permalink)  
Antiguo 23/09/2009, 13:53
 
Fecha de Ingreso: julio-2006
Ubicación: sevilla
Mensajes: 251
Antigüedad: 17 años, 10 meses
Puntos: 5
Respuesta: Xajax + IE: problema con actualizacion de select

todo viene de innerHTML , deje de usar xajax por lo mismo el comportamiento de innerHTML es muy erratico, como aprecio el problema viene que no actualiza correctamente se debe a que innerHTML mete html dentro de donde tu lo indicas, prueba a usar DOM para cambiar el contenido te ahorras comederos de cabeza , y consejo pasate a prototype que no se casa con javascript de navegador y es menos dependiente.

Y por ultimo para este tipo de cosas carga la información completa y usa hidden con css es mas seguro y da menos problemas aparte de ser mas accesible po si falla el js siempre tendras el formulario completo y usable
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 22:06.