Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/06/2011, 15:02
Avatar de cuasatar
cuasatar
 
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 13 años, 4 meses
Puntos: 181
Como modificar un registro de PHP a través de un listado

Hola a todos. Este es mi primer foro. Soy programador empírico de web. Como muchos empece con html y luego empece a programar en php, mysql y javascript a través de libros, tutoriales y por supuesto está página que es excelente. Me registre para buscar ayuda y por supuesto para devolver un poco de mis conocimientos a personas que se estan iniciando en esto.

Ahora si vamos a la pregunta (jejejeje) Pues basicamente tengo el siguiente problema. He programado un script para que el usuario pueda ver una cantidad X de noticias de su blog en donde puede ver el titulo del blog, la fecha en la que fue creado y una casilla de verificación donde puede borrar, actualizar o crear una nueva entrada. De igual forma si las noticias que tiene el usuario son mayores que X muestre la paginación. Para poner un ejemplo digamos que X=10 y las noticias son 50. Por tanto se dividira en 5 paginas donde se podran ver las noticias. (1 a la 10, 11 a la 20, etc). Hasta aquí todo me ha funcionado bien y sin problemas.

Como pueden ver en el script que anexo la variable $tamanoPagina=10; es la que en estos momentos me dice que mis páginas estaran restringidas a 10 registros por pagina. Lo que yo quiero hacer es que por medio de una simple lista de selección yo pueda variar este valor a cualquiera que yo le indique por medio de una lista (hecha con un simple formulario de html). La idea es que este valor se procese en la misma pagina. es decir algo así como:

$tamanoPagina=$_POST["registros"]; donde registros corresponda al valor que me genera la lista (5,10,20,50,100 o los que yo quiera colocar).

He leido que se pueden autoprocesar las paginas en PHP para que en vez de darle action al formulario y se dirija a otro script haga la gestión dentro de la misma página para que el usuario no vea ese pantallazo blanco mientras busca el script y retorna a la pagina. Si alguien me explica como se puede hacer esto o si tiene otra solución en php o usando javascript o una combinación de ambas lo agradeceria mucho.

A continuación dejo el script de lo que he hecho hasta el momento. Espero su valiosa ayuda y ojala este tema les sirva a muchas personas que pudieran tener la misma duda y así aprender todos.

$tamanoPagina=10;

$pagina=$_GET["pagina"];
if (!$pagina){
$inicio=0;
$pagina=1;
}
else{
$inicio=($pagina-1)*$tamanoPagina;
}

$hacerConsulta=mysql_query($consulta, $conexion);
$numeroDeNoticias=mysql_num_rows($hacerConsulta);
$totalPaginas=ceil($numeroDeNoticias/$tamanoPagina);

echo ("Número de noticias encontradas: ".$numeroDeNoticias.salto);
echo("Se muestran páginas de ".$tamanoPagina." registros cada una".salto);
echo("Mostrando la página ".$pagina." de ".$totalPaginas.salto);
$consulta="SELECT * FROM noticias ORDER BY idNoticias DESC LIMIT ".$inicio.",".$tamanoPagina;
$hacerConsulta=mysql_query($consulta, $conexion);
if($totalPaginas>1){
for($i=1;$i<=$totalPaginas;$i++){
if ($pagina==$i)
echo $pagina . " ";
else{
echo("<a href='index2.php?pagina=".$i."'> ".$i." </a>");
}
}

}

Y la idea es que con un simple formulario como este:

body>
<form id="formulario" name="formulario" method="post" action="pasarValor.php">
Seleccione el valor de registros que desea ver
<select name='registros' id='registros'>
<option value='5'>5</option>
<option value='10'>10</option>
<option value='20'>20</option>
</select>

<input type='button' value='Aceptar'>
</form>
</body>

Se pudiera cambiar dinamicamente el valor de el número de registros visibles en pantalla.