Foros del Web » Programando para Internet » Javascript »

Problema con javascript, php y un input select en Internet Explorer.

Estas en el tema de Problema con javascript, php y un input select en Internet Explorer. en el foro de Javascript en Foros del Web. Tengo un problema con una pequeña aplicación que estoy haciendo para una tienda online. Explico la aplicación desde el principio: Llamo a esta función php ...
  #1 (permalink)  
Antiguo 24/11/2009, 05:18
 
Fecha de Ingreso: noviembre-2009
Mensajes: 2
Antigüedad: 14 años, 5 meses
Puntos: 0
Problema con javascript, php y un input select en Internet Explorer.

Tengo un problema con una pequeña aplicación que estoy haciendo para una tienda online. Explico la aplicación desde el principio:

Llamo a esta función php desde la página donde quiero mostrar los precios



Código PHP:
function comboAtributos($cod_atrib,$prod)
{
$link getConnection();
    
$sql "SELECT * FROM atributos WHERE cod_atributo = " $cod_atrib;
    
$result mysql_query($sql,$link);        
    while (
$row mysql_fetch_array($result))
    {            
        echo 
"<select id='opcion' name='opcion' >";        
        for (
$i=0$i<=20$i++)
        {
            if (
$row["opcion".$i] != ""
            {
                if (
$row["oferta".$i] != "" && $row["oferta".$i] != "0")
                {
                    
/*echo "<script language='javascript'>window.mostrarPrecio(".$row["var0"].",".$row["oferta0"].",".$prod.");</script>";*/
                    
echo "<option onClick='window.mostrarPrecio(".$row["var".$i].",".$row["oferta".$i].",".$prod.");' value='"$row["oferta".$i].","$row["opcion".$i].","$row["nombre"]."'>" $row["opcion".$i] . " </option>\r\n";    
                } 
                else
                {
                    
/*echo "<script language='javascript'> mostrarPrecio1(".$row["var0"].",".$prod.") </script>";*/
                    
echo "<option onclick='mostrarPrecio1(".$row["var".$i].",".$prod.")' value='"$row["var".$i].","$row["opcion".$i].","$row["nombre"]."'>" $row["opcion".$i] . " </option>\r\n";
                }
            }            
        }            
    }        
    echo 
"</select>";

Esta función termina invocando a otra función “mostrarPrecio(precio,precioOferta,prod)” en javascript, que se encuentra en un archivo “.js”:



Código:
function mostrarPrecio(precio,precioOferta,prod)
{	
if (precioOferta != "" && precioOferta != "0" && precioOferta != "undefined")
	{					
		var valor = precioOferta + "";	
		var textoDiv = "";
		for (var j = 0; j < valor.length; j++)
		{
			if (valor.charAt(j) == '.')
			{
				textoDiv =  textoDiv + "<img src=images/precios/dot.gif />";
			}
			else
			{
				textoDiv =  textoDiv + "<img src=images/precios/grandes/"+ valor.charAt(j) +".gif />";
			}
		}
		textoDiv = textoDiv + "<img src='images/precios/euroPortada.gif' />"	
		contenedorOferta = document.getElementById("contenedorOferta" + prod);
		contenedorOferta.innerHTML = textoDiv;
		var valor = precio + "";	
		var textoDiv = "";
		for (var j = 0; j < valor.length; j++)
		{
			if (valor.charAt(j) == '.')
			{
				textoDiv =  textoDiv + "<img src=images/precios/dot.gif />";
			}
			else
			{
				textoDiv =  textoDiv + "<img src=images/precios/grandes/"+ valor.charAt(j) +"no.gif />";
			}
		}
		textoDiv = textoDiv + "<img src='images/precios/euroPortada.gif' />"			contenedorPrecio = document.getElementById("contenedorPrecio" + prod);
		contenedorPrecio.innerHTML = textoDiv;
	}
}
Como podéis ver, esta función cambia los caracteres de una cadena por imágenes, que finalmente se cargan en los siguientes “div”:
Código HTML:
echo "<div id='contenedorPrecio".$prod."' class='precioFicha'> </div>";
echo "<div id='contenedorOferta".$prod."' class='precioFichaOferta'> </div>";
Todo esto funciona perfectamente en firefox, pero en Explorer parece que el javascript no funciona en absoluto. Se cargan las opciones en el “select” mediante php, pero al hacer click no se ejecuta el javascript, no se muestran los precios.

He probado a utilizar AJAX, concretamente una clase para php llamada XAJAX. Funciona bien en los dos exploradores pero solo con “inputs” distintos de “select”. Este solo funciona para firefox.

Llevo dos semanas dándole vueltas al tema y he decidido escribiros finalmente, porque pienso que alguna solución habrá para adaptar este código que os traigo a el maldito Internet Explorer.

Gracias de antemano y un saludo.
Sois de una ayuda incalculable.
  #2 (permalink)  
Antiguo 24/11/2009, 10:06
 
Fecha de Ingreso: agosto-2008
Mensajes: 271
Antigüedad: 15 años, 8 meses
Puntos: 2
Respuesta: Problema con javascript, php y un input select en Internet Explorer.

Hola

Puede ser porque en IE el evento onClick no se permite para ese elemento, podrias probar con el evento onchange en la etiqueta select no en los options.

Saludos
  #3 (permalink)  
Antiguo 24/11/2009, 12:08
 
Fecha de Ingreso: noviembre-2009
Mensajes: 2
Antigüedad: 14 años, 5 meses
Puntos: 0
De acuerdo Respuesta: Problema con javascript, php y un input select en Internet Explorer.

Perfecto Fenris, ha funcionado a la primera!!!!

Para ponerlo en el "select" he tenido que sacarlo del "for" que alimentaba a las varibles de la función, así que ahora me tendre que comer un poquito la cabeza para que rule del todo, pero el problema "gordo" ya lo tengo resuelto. Mil gracias

Última edición por RafaRockNRoll; 30/11/2009 a las 18:21
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 12:58.