Foros del Web » Programando para Internet » Javascript »

Seleccionar solo una imagen para activar

Estas en el tema de Seleccionar solo una imagen para activar en el foro de Javascript en Foros del Web. Hola, estoy haciendo un sistema de banners muy sencillo para una web. El tema es que solo se muestra un banner, aunque pueden tener varios ...
  #1 (permalink)  
Antiguo 18/05/2012, 11:03
 
Fecha de Ingreso: mayo-2010
Mensajes: 103
Antigüedad: 13 años, 11 meses
Puntos: 4
Seleccionar solo una imagen para activar

Hola, estoy haciendo un sistema de banners muy sencillo para una web. El tema es que solo se muestra un banner, aunque pueden tener varios guardados y activar el que quieran. Para esto tengo en la BD un campo activar que puede tomar los valores 0 y 1, pero no se como hacer para que si tengo activo uno cualquiera, al activar otro, los demás se pongan con valor 0. No se si me he explicado bien, pero si alguien entiende lo que digo y me puede echar una mano.

gracias
__________________
salud
ainvar de los carnutos
  #2 (permalink)  
Antiguo 18/05/2012, 12:58
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Seleccionar solo una imagen para activar

Podés hacer algo asi
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <title>mostrar oculta capas</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. <script type="text/javascript">
  7. //<![CDATA[
  8. function marcar(cual){
  9. var cboxes = new Array("Uno", "Dos", "Tres","Cuatro","Cinco");
  10. var i;
  11. var e;
  12.     for(i in cboxes){
  13.     e = document.getElementById(cboxes[i]);
  14.     cboxes[i] == cual?e.checked=true:e.checked=false;  
  15. }
  16. }
  17. //]]>
  18. </head>
  19. <form action="#">
  20. <input type='checkbox' name='test' value='1' id="Uno" onclick="marcar('Uno');" /><br />
  21. <input type='checkbox' name='test' value='2' id="Dos" onclick="marcar('Dos');" /><br />
  22. <input type='checkbox' name='test' value='3' id="Tres" onclick="marcar('Tres');" /><br />
  23. <input type='checkbox' name='test' value='4' id="Cuatro" onclick="marcar('Cuatro');" /><br />
  24. <input type='checkbox' name='test' value='5' id="Cinco" onclick="marcar('Cinco');" /><br />
  25. </form>
  26. </body>
  27. </html>
y si lo combinás con esto
http://foros.emprear.com/javascript/checkboxes-ocultos/
quedaría algo más atractivo, pero eso, lo dejo a vos... porque yo aún no lo hice nunca
Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #3 (permalink)  
Antiguo 18/05/2012, 15:47
 
Fecha de Ingreso: mayo-2010
Mensajes: 103
Antigüedad: 13 años, 11 meses
Puntos: 4
Respuesta: Seleccionar solo una imagen para activar

Gracias emprear, lo voy a probar, pero tiene buena pinta.
__________________
salud
ainvar de los carnutos
  #4 (permalink)  
Antiguo 18/05/2012, 18:14
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Seleccionar solo una imagen para activar

si funciona bien, pero para eso en particular que necesitas, es más simple usar radiobuttons, que no admiten selecciones múltiples.

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #5 (permalink)  
Antiguo 19/05/2012, 00:57
 
Fecha de Ingreso: mayo-2010
Mensajes: 103
Antigüedad: 13 años, 11 meses
Puntos: 4
Respuesta: Seleccionar solo una imagen para activar

si, quizá sea más simple los radiobuttons, pero no me sirven, pues yo lo que quiero es mantener solo una imagen activa en la BD, por lo que necesito un campo por cada id de imagen y los radiobuttons son solo un campo, es decir, envían un solo valor para todos, mientras que los checkbox son campos independientes y puedo recoger el valor de cada checkbox pòr separado, luego actualizo la tabla con los valores obtenidos, o eso intento, porque no tengo nada claro como lo voy a hacer.
__________________
salud
ainvar de los carnutos
  #6 (permalink)  
Antiguo 19/05/2012, 13:01
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: Seleccionar solo una imagen para activar

Los radiobuttons podrán pertenecer todos a un mismo grupo, digamos el grupo imagen, que está definido por el atributo name, pero cada uno tiene un value distinto, por lo que par el php
$_POST[imagen] = value del radio seleccionado
El value en tu caso sería un valor distintivo en la tabla de la base de datos (nombre de la imagen, id del banner, etc)
Ya con eso tenes para hacer el sql y el update para el campo "activar"
Ahora tu problema es que seguramente ya hay otro banner "activo"

Entonces la solución es
Primero haces un update a todas las filas poniendo activar en 0
Despues haces un update a la imagen en particular que se obtuvo de $_POST['imagen'] y le pones activar 1
algo asi mas o menos

Código PHP:
Ver original
  1. // todos en cero
  2. $consulta = "UPDATE banners SET activo='0' WHERE imagen != ''";
  3. mysql_query($consulta);
  4. // ponés en uno el seleccionado
  5. $imagen = $_POST['imagen'];
  6. $consulta = "UPDATE banners SET activo ='1' WHERE imagen= '$imagen'";
  7. mysql_query($consulta);

Si me decís que no son muchos banners, el primer update a toda la tabla no va a afectar el rendimiento

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Última edición por emprear; 19/05/2012 a las 13:59
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 20:23.