Foros del Web » Programando para Internet » PHP »

Cambiar el color de una celda al hacer clic sobre ella

Estas en el tema de Cambiar el color de una celda al hacer clic sobre ella en el foro de PHP en Foros del Web. Buenas noches, pues eso, lo que necesito es cambiar el color de las celdas cuando se haga clic sobre ellas, y lo tengo que hacer ...
  #1 (permalink)  
Antiguo 26/12/2012, 16:19
 
Fecha de Ingreso: octubre-2010
Mensajes: 88
Antigüedad: 14 años, 1 mes
Puntos: 1
Cambiar el color de una celda al hacer clic sobre ella

Buenas noches, pues eso, lo que necesito es cambiar el color de las celdas cuando se haga clic sobre ellas, y lo tengo que hacer con código php y no javascript

La información inicial la leo de un fichero que tiene la siguiente estructura:
00000011001000000001
00000110000000000110
y así sucesivamente
Debo representar esta información con celdas donde el cero es de un color y el 1 de otro color.

Os muestro lo que he hecho hasta ahora

He cargado los datos del fichero en un array con la siguiente función
Código PHP:
 function CargarArrayEntradas(){

       
$id_fichero=@fopen($this->MY_FILE,"r") or die("<B>El fichero \"".$this->MY_FILE."\" no se ha podido abrir.</B><P>");
            
rewind($id_fichero);
            
$j0;           
            
            while (!
feof($id_fichero))
            {
                
$linea=trim(fgets($id_fichero,20));                 
                
$this->registros [$j]= $linea
                
$j+=1;
            }
            
fclose($id_fichero);            
    } 
Y en la pagina principal leo el array antes creado y segun el valor pinto la celda de un color. Lo hago de la siguiente manera:
Código PHP:
           echo ("<TABLE cellspacing=1 cellpadding=0 align=center width=600>");      
           for(
$i=1$icount($datosPelicula->registros); $i++){
               
$cade$datosPelicula->registros[$i];               
               echo (
"<tr>");               
                for(
$j=1$j<strlen($cade);$j++){                    
                    if(
$cade[$j]==0){                       
                       echo(
"<td bgcolor=green height=15></td>");
                   }
                   else if (
$cade[$j]==1){
                       echo(
"<td bgcolor=red height=15></td>");
                   }
                }
                echo (
"</tr>");
           }
          echo (
"</TABLE>"
Alguien me puede echar una mano, en como hacer para cambiar el color de la celda y ya de paso controlar el número de cambios realizados?
Gracias de antemano
  #2 (permalink)  
Antiguo 26/12/2012, 18:18
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: Cambiar el color de una celda al hacer clic sobre ella

¿Por qué no quieres usar Javascript?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 26/12/2012, 18:50
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Cambiar el color de una celda al hacer clic sobre ella

Cita:
Buenas noches, pues eso, lo que necesito es cambiar el color de las celdas cuando se haga clic sobre ellas, y lo tengo que hacer con código php y no javascript
PHP no trabaja en el navegador, sino en el servidor, por lo que no puede cambiar colores de nada. No tiene efectos directos sobre la pagina web, ni tampoco puede controlar eventos en ella, como serían los clicks.
¿De dónde has sacado que debes hacerlo en PHP?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #4 (permalink)  
Antiguo 26/12/2012, 18:54
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 13 años, 4 meses
Puntos: 181
Respuesta: Cambiar el color de una celda al hacer clic sobre ella

Cita:
lo que necesito es cambiar el color de las celdas cuando se haga clic sobre ellas
¿Como pretendes manejar un evento del lado del cliente (como hacer clic) con un lenguaje del lado del servidor?

Fuera de que me parece absurdo cambiar el color con php es totalmente obsoleto utilizar propiedades como td bgcolor, para eso se tienen los estilos css.

Si explicas un poco mejor lo que quieres hacer para no querer utilizar javascript pues quizas se pueda encontrar alguna alternativa. Así leas el fichero con php si quieres manejar un boton debes usar javascript.
__________________
Blog de humor http://elcuasatar.net63.net/
  #5 (permalink)  
Antiguo 26/12/2012, 18:55
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 15 años
Puntos: 168
Respuesta: Cambiar el color de una celda al hacer clic sobre ella

Estos profesores de hoy en día piden cada cosa
  #6 (permalink)  
Antiguo 26/12/2012, 19:04
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: Cambiar el color de una celda al hacer clic sobre ella

Técnicamente es posible lo que pides. Que sea adecuado o no, es otra cosa.

Para esto necesitas que cada celda tenga un link hacia la misma página que incluya una referencia a la celda, de forma que sepas la celda que se dio clic. Esto requiere que sepas cómo pasar y recuperar valores por el método get (o post).

Para llevar el control de cambios, podrías ir almacenando los cambios en sesiones. Pero necesitas dar más datos sobre si realmente quieres hacerlo así.
  #7 (permalink)  
Antiguo 27/12/2012, 05:52
 
Fecha de Ingreso: octubre-2010
Mensajes: 88
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: Cambiar el color de una celda al hacer clic sobre ella

Hola de nuevo a todos!
Pues no es que yo no quiera usar javascript, sino que se supone que estoy aprendiendo php y todos los ejercicios que me mandan se deben poder hacer y debo hacerlos en php.
Respecto a las css, igual, no tengo ni idea de momento, así que...
Creo que efectivamente lo que me dices "ocp001a" es lo que debo hacer, porque ya he dado el tema de pasar valores y acabo de ver el de las sesiones, pero sinceramente ando bastante perdida, así que si me pudierais poner un ejemplillo
de como hacerlo os lo agradecería
  #8 (permalink)  
Antiguo 27/12/2012, 06:00
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 7 meses
Puntos: 839
Respuesta: Cambiar el color de una celda al hacer clic sobre ella

Puedes empezar por aquí:
http://php.net/variables.external

Allí se indica cómo obtener las variables por GET. Cada enlace debe enviar un valor diferente de modo que puedes diferenciarlos al recibir los datos.

Solo debes tener en cuenta que en cada click se recargará la página, es la única forma sin usar Javascript.

Como es un ejercicio te recomiendo que intentes hacerlo por ti misma, luego si no logras avanzar, muéstranos lo que intentaste, quizás podamos orientarte.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 27/12/2012, 12:47
 
Fecha de Ingreso: octubre-2010
Mensajes: 88
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: Cambiar el color de una celda al hacer clic sobre ella

Hola de nuevo, bueno, me estoy pegando con el ejercicio este de marras y una vez cargado el array que he tenido que modificar y que os muestro como lo he hecho.
Por cierto, lo cargo a partir de la línea 1 porque en la 0 hay otros datos que no necesito ahora.

Código PHP:
function CargarArrayEntradas(){

       
$id_fichero=@fopen($this->MY_FILE,"r") or die("<B>El fichero \"".$this->MY_FILE."\" no se ha podido abrir.</B><P>");
            
rewind($id_fichero);
            
$j0;           
            
            while (!
feof($id_fichero))
            {
                
$linea=trim(fgets($id_fichero,50));                
                if (
$j>=1){
                    for (
$m1$m strlen($linea); $m++){
                        
$this->registros [$j][$m]= $linea[$m];
                    }
                }
                
$j+=1;
            }
            
fclose($id_fichero);            
    } 
Desde la pagina principal monto la tabla, pero no se como hacer para que las celdas aparezcan verde o rojo segun corresponda, ya que si dentro de <td> pongo bgcolor= lo que sea, no me aparece nada. Si lo quito me aparece el literal ? o X, que lo he puesto de prueba.
Código PHP:
echo ("<TABLE cellspacing=1 cellpadding=0 align=center width=600>");
         for($i=1; $i<count($datosPelicula->registros);$i++){             
             $CadePelis= $datosPelicula->registros[$i];             
             echo ("<tr>");
             for($m=1; $m <= count($CadePelis); $m++){                 
                  if($CadePelis[$m]==0){ ?> 
                       <form name="form1" method="post" action="Index.php"> 
                            <td><a href="<? echo $i.$m ?>">? </a></td>                                                                                        
                        </form>
                   <?    
                   
}
                   else if (
$CadePelis[$m]==1){?>
                       <form name="form1" method="post" action="Index.php"> 
                            <td><a href="<? echo $i.$m ?>">X</a></td>                                                                                        
                        </form>
                   <?
                   
}          
             }
             echo (
"</tr>");
         } 
         echo (
"</TABLE>");
A ver si me podéis guiar.
Gracias y un saludo

Etiquetas: celda, clic, color
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 03:44.