Foros del Web » Programando para Internet » Javascript »

Cambiar imagen de css dinámicamente

Estas en el tema de Cambiar imagen de css dinámicamente en el foro de Javascript en Foros del Web. Buenas noches, Lo primero de todo, gracias de antemano por leer el post. Estoy realizando un proyecto en el cual de 3 opciones, sólo puede ...
  #1 (permalink)  
Antiguo 21/09/2009, 15:47
crushinme
Invitado
 
Mensajes: n/a
Puntos:
Cambiar imagen de css dinámicamente

Buenas noches,
Lo primero de todo, gracias de antemano por leer el post.

Estoy realizando un proyecto en el cual de 3 opciones, sólo puede seleccionar una, y en las otras dos, se deberia cambiar el aspecto del fondo a otro color.
Me explico, valores 1 2 3
si selecciono 1, 1 se pondrá rojo y 2 3 verde por ejemplo
si selecciono 2, 2 se pondrá rojo y 1 3 verde
... etc
Sé que me falla alguna tontería pero, ¿podéis echarle un vistazo?
Muchas gracias

Javascript:
<script type="text/javascript">
function EsResultado(fila,valor) {
var i=0;
document.getElementById(fila).value=valor;

var e = document.getElementById(valor + fila);

if(e.className=="sin_marcar")

{

if(valor=="1"){e.style.background = 'url(../img/uno_con.jpg)'; e.className="marcado"; }
if(valor=="2"){e.style.background = 'url(../img/dos_con.jpg)';e .className="marcado"; }
if(valor=="3"){document.getElementById(fila).value ="x"; e.style.background = 'url(../img/x_con.jpg)'; e.className="marcado";

}
} else {

if(valor=="1"){
e.style.background = 'url(../img/uno.jpg)';
e.className="sin_marcar";
}
if(valor=="3"){
e.style.background = 'url(../img/x.jpg)';
e.className="sin_marcar";
document.getElementById(fila).value="x";
}
if(valor=="2"){
e.style.background = 'url(../img/dos.jpg)';
e.className="sin_marcar";
}

}


}
</script>

Y estos son los datos que obtengo del array de php :
...

$a=$row["id"];
echo '<td >'.$row["id"].'</td>';
echo '<td>'.$row["equipol"].'</td>';
echo '<td>'.$row["equipov"].'</td>';
echo '<td height="20px" id="1'.$a.'" width="4%" class="sin_marcar" background="../img/uno.jpg" onClick="EsResultado(\''.$a.'\',\'1\')"></td>';
echo '<td id="2'.$a.'" width="4%" class="sin_marcar" background="../img/dos.jpg" onClick="EsResultado(\''.$a.'\',\'2\')"></td>';
echo '<td id="3'.$a.'" width="4%" class="sin_marcar" background="../img/x.jpg" onClick="EsResultado(\''.$a.'\',\'3\')"></td>';
echo '<td align="left"><input type="text" id="'.$a.'" name="resul[]" ></td>';

echo '</tr>';
}

echo '<tr><td colspan="6"><input type="submit" value="Enviar"> </td></tr>';
echo '</table>';
echo '</form>';
  #2 (permalink)  
Antiguo 21/09/2009, 18:22
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Cambiar imagen de css dinámicamente

aqui te dejo una funcion para cambiar la imagen mas o menos adaptado a tu necesidad. la funcion utiliza a manera de un tracker para tener constancia del ultimo elemento que se presiono.
Código:
var tracker = null;
function changeImage(elem, infix){
if(tracker){
tracker.className = "sin_marcar";
tracker.style.backgroundImage = tracker.style.backgroundImage.replace(infix,"");
}
tracker = elem;
tracker.className = "marcado";
tracker.style.backgroundImage = tracker.style.backgroundImage.replace(/\./, infix+".");
} //changeImage;
lo utilizas mas o menos de la siguiente forma
Código:
<td ... onclick="changeImage(this, '_con');">...</td>
no he probado el codigo pero estoy casi seguro que debe funcionar. referencia adicional, un ID no puede comenzar con numeros ni simbolos. tienes que aplicar la misma norma para nombrar variables.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #3 (permalink)  
Antiguo 22/09/2009, 08:49
crushinme
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Cambiar imagen de css dinámicamente

Entiendo relativamente lo que hace esa función, pero la verdad no tengo ni papa de como aplicarlo jeje.
Porque al enviar el formulario también tengo que recoger los valores para cada fila para insertarlos en bd.

La verdad que en javascript soy un poco novato :P

Pero muchas gracias por tu tiempo, que tampoco quiero hacértelo perder.
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 04:25.