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'," 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();