Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/03/2012, 09:59
ruapercebe
 
Fecha de Ingreso: marzo-2010
Mensajes: 3
Antigüedad: 14 años, 1 mes
Puntos: 0
Cambiar el color de las celdas de una tabla

Hola, necesito ayuda con un código de PHP, a ver si alguien puede echarme una mano.

Tengo que hacer un script que recoja mediante un formulario el número de filas y columnas que el usuario quiera y cree una tabla con ese número de filas y de columnas. Además de la tabla se tienen que mostrar unos enlaces con el texto (rojo,verde,azul). Al pinchar en los enlaces se selecciona el color,
Con el color seleccionado, al pinchar sobre una celda de la tabla, se tiene que pintar de ese color el fondo de esa celda.

Casi lo tengo pero se colorean las celdas que hay antes que la celda seleccionada. Dejo el código por si alguién me puede dar alguna pista. Gracias!


<?php
session_start();

if(!isset($_SESSION['tb']))
{
$_SESSION['tb']=array();
}

if(!isset($_SESSION['color_actual']))
{
$_SESSION['color_actual']="white";
}


if(isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD']=='POST')
{
echo "la peticion es POST";
$_SESSION['f']=$_POST['filas'];
$_SESSION['c']=$_POST['columnas'];

echo"<br>".$_SESSION['f']." filas";
echo"<br>".$_SESSION['c']." columnas";

}
if(isset($_SERVER['REQUEST_METHOD']) && $_SERVER['REQUEST_METHOD']=='GET')
{
if(isset($_GET['color']))
{
$_SESSION['color_actual']=$_GET['color'];
}

if(isset($_GET['fila']) && isset($_GET['columna']))
{
$f= $_GET['fila'];
$c= $_GET['columna'];
for($i=0;$i<$f;$i++)
for($x=0;$x<$c;$x++)
$_SESSION['tb'][$i][$x] = "background-color: ".$_SESSION['color_actual'];
}
}


?>
<html>
<head></head>
<body>

<form method="post" action="">
<p>Filas: <input type="number" name="filas" /></p>
<p>Columnas: <input type="number" name="columnas" /></p>
<p><input type="submit" name="submit" /></p>
</form>

<table border="1">
<?php for($i=0;$i<$_SESSION['f'];$i++): ?>
<tr>
<?php for($x=0;$x<$_SESSION['c'];$x++): ?>
<td style="<?php echo $_SESSION['tb'][$i][$x] ?>"><a href="?fila=<?php echo$i ?>&columna=<?php echo$x ?>"> <?php echo"$i-$x"; ?></a></td>
<?php endfor; ?>
</tr>
<?php endfor; ?>
</table>

<ul>
<li><a href="?color=red">Rojo</a></li>
<li><a href="?color=green">Verde</a></li>
<li><a href="?color=blue">Azul</a></li>
</ul>

</body>
</html>