PHP - recarga de pagina

 
Vista:

recarga de pagina

Publicado por soFila (6 intervenciones) el 21/04/2009 23:26:45
Envío un parametro desde un formulario (acota) con el que realizo una consulta sql para mostrar los datos que recupero mediante paginacion, el problema es que cuando pulso el link hacia la proxima pagina nome toma lo que ingreso en el formulario, es como que c borra el valor...adjunto el codigo de la pagina:

<ul class="buscar">
<li><form class="form-buscar" name="fbuscar" id="fbuscar" action="listadoproduc.php" method="post">
<table>
<tr>
<td><p class="Estilo11">BUSCADOR</p></td>
</tr>
<tr>
<td><input type="text" name="acota" id="acota"/></td> /*ESTE CAMPO USO PARA ACOTAR LA BUSQUEDA EN SQL*///
<td><input type="submit" id="buscar" value="Buscar"/></td>
</tr>

</table>
</form></li>
</ul>

<?php
include("php/conexion.php");
$link=conectar();

$hasta=3;
$numpag =3;// Resultados a mostrar por pagina
$adicionales =1;//Resultados a mostrar mayores y menores que la pagina actual
$archivo = "listadoproduc.php";// El nombre del archivo donde tenemos este codigo

$pagina = $_GET["pagina"];
if (!$pagina) {
$pagina = 1;
$desde = (1 - 1) * $hasta;
}
else {
$desde = ($pagina - 1) * $hasta;
}

//* ACA TOMO EL PARAMETRO Y LO MANDO A LA VARIABLE CRITERIO PARA USARLA EN LA CONSULTA, LA 1ERA VEZ LO TOMA BIEN PERO DESPUES NO LO RECONOCE...
$criterio=($_GET["criterio"]);
if(!isset($criterio)){
$criterio=$_POST["acota"];}
else{$criterio=$_GET["criterio"];}


$squery="SELECT * FROM productos WHERE descrip like '%$criterio%' or nombre like '%$criterio%'";
$resultados = mysql_query($squery,$link) or die(mysql_error());
$total_registros = mysql_num_rows($resultados);
$total_paginas = ceil($total_registros / $hasta);


if($total_registros==0){
echo("No existen productos con esas caracteristicas");
}
else{

?>

<div class="contenido">

<table border="3" bordercolor="#6633FF">
<tr>
<td class="Estilo17" >Producto</td>
<td class="Estilo17">Características</td>
</tr>
<?php
$rquery ="SELECT * FROM productos WHERE descrip like '%$criterio%' or nombre like '%$criterio%' LIMIT $desde, $hasta";
$resultados = mysql_query($rquery,$link) or die(mysql_error());

$total_registros = mysql_num_rows($resultados);
while($fila=mysql_fetch_array($resultados)) {
//mostrar los datos en la tabla
?>
<tr>
<td height="58"><img src="../imagenes/<?php echo($fila['img_prod']) ?>" alt="Foto no disponible" width="120" height="90" /></td>
<td width="440"><br/>
<div align="left">
<span class="Estilo16">Nombre:<p class="Estilo14"><?php echo($fila['nombre']) ?></p></span><br/>
<span class="Estilo16">Categoría:<p class="Estilo14"><?php echo($fila['categ']) ?></p></span><br/>
<?php // $cat=($fila['categ']);
//$sqlnormal="SELECT desc_cat FROM categorias where id_cat='$cat'";
//$result2=mysql_query($sql,$link);
//echo($result2['categ'])?>
<span class="Estilo16">Descripción:<p class="Estilo14"><?php echo($fila['descrip']) ?></p></span><br/>
<span class="Estilo16">Precio:<p class="Estilo14"> <?php echo($fila['precio']) ?></p></span><br/>

</td>
</tr>
<?php }
} ?>
</table>



<br />


<?php
echo "<div align=center>";
if($total_registros) {
if (($pagina -1) >0){
echo "<a href='".$archivo."?pagina=".($pagina-1)."'>< Anterior</a> ";

}

for ($i=1; $i<=$total_paginas;++$i){

if ($pagina == $i) {
//si hay una pagina, no coloco enlace
echo "<b>".$pagina."</b> ";

// echo $i;
}else {
//si el índice no corresponde con la página mostrada actualmente,
//si hay mas mostramos todos los links
//echo" - ";
echo "<a href='".$archivo."?pagina=$i' title='Pagina $i'>$i </a>";
}
}

if(($pagina + 1)<=$total_paginas) {

echo " <a href='".$archivo."?pagina=".($pagina+1)."'>Siguiente ></a>";
}

echo "</div>";
}
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:recarga de pagina

Publicado por ambrosio (38 intervenciones) el 22/04/2009 11:41:32
No es que borre el valor, simplemente es que cuando pulsas en los links de la paginación ya no estas "submitiendo" el formulario. Puedes solucionarlo, por ejemplo, cambiando el método del formulario de "post" a "get":

<form class="form-buscar" name="fbuscar" id="fbuscar" action="listadoproduc.php" method="get">

Luego recoges el valor de la siguiente manera (lo que haces ahora no lo entiendo):

$criterio=$_GET["acota"];

Y para terminar, en los enlaces de la paginación, tienes que pasar éste valor junto con el de la página:

echo "<a href='".$archivo."?acota=$criterio&pagina=$i' title='Pagina $i'>$i </a>";

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:recarga de pagina

Publicado por soFila (6 intervenciones) el 22/04/2009 16:14:12
Gracias!!!eso era...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar