Foros del Web » Programando para Internet » PHP »

Problemas con formulario

Estas en el tema de Problemas con formulario en el foro de PHP en Foros del Web. Cita: $juego=$_POST["busqueda"] Capturo la variable, pero no se como recuperarla luego, ya que el archivo donde va dirigida me da error. He estado buscando en ...
  #1 (permalink)  
Antiguo 06/03/2010, 16:34
Avatar de principiantedelphp  
Fecha de Ingreso: febrero-2010
Mensajes: 160
Antigüedad: 14 años, 2 meses
Puntos: 1
Problemas con formulario

Cita:
$juego=$_POST["busqueda"]
Capturo la variable, pero no se como recuperarla luego, ya que el archivo donde va dirigida me da error. He estado buscando en internet (mal tal vez) y nada.
Explico en detalle: Escribo en el formulario de busqueda la palabra "camisetas". Luego va a un archivo llamado principal.php, pero que todo el resultado está paginado. La primer pagina sale bien, luego en la pagina 2 se pierde la variable (esta al menos).
Gracoas
  #2 (permalink)  
Antiguo 06/03/2010, 16:42
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 16 años
Puntos: 127
Respuesta: Problemas con formulario

deberias colocar el codigo del paginador
pero eso se resuelve enviando la variable de nuevo cuando paginas y recuperarla por $_REQUEST para evitar verificar si esta por POST o GET.
  #3 (permalink)  
Antiguo 06/03/2010, 16:58
Avatar de principiantedelphp  
Fecha de Ingreso: febrero-2010
Mensajes: 160
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Problemas con formulario

Paginador de la pagina de busqueda:
Cita:
.....
$query = "SELECT count(id) AS Total from rank WHERE MATCH(nombre, descripcion, palabrasclaves) AGAINST ('$juego')";
$row2=mysql_fetch_assoc(mysql_query($query));
$total_records = $row2['Total'];
$records_per_page = 10;
$total_pages = ceil($total_records / $records_per_page);
$page = intval($_GET["p"]);
if ($page < 1 || $page > $total_pages) $page = 1;
$offset = ($page - 1) * $records_per_page;
$limit = " LIMIT $offset, $records_per_page";
....
....
Que variable no está pasando? Puse:

Cita:
$juego=$_REQUEST[$_POST["busqueda"]]
Y nada. No pude recuperar la variable

NOTA: El buscador está en la plantilla
Puse tambien (en la pagina destino principal.php):
Cita:
echo [$_POST["busqueda"];
Como supuse, en la pagina que anda bien me imprime la variable que puse en el formulario. Cuando fui a la pagina 2, no imprimio nada.

Última edición por principiantedelphp; 06/03/2010 a las 17:10
  #4 (permalink)  
Antiguo 06/03/2010, 17:21
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 16 años
Puntos: 127
Respuesta: Problemas con formulario

no estas poniendo el codigo del paginador donde haces clik a los muneros que dice
pagina 1 2 3 4 5 6 7 8 9
en cada pagina deveria de haber un link el cual tenga el numero de paginas, esta tanbien deberia de tener la variable del buscador.
  #5 (permalink)  
Antiguo 06/03/2010, 17:31
Avatar de principiantedelphp  
Fecha de Ingreso: febrero-2010
Mensajes: 160
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Problemas con formulario

Ok, ahi va (pense que me decías el de mas arriba):
Cita:
$display_pages=10;
echo "<a title='Inicio' href='?p=1'>< < Inicio</a> ";
if ($page>1) echo "</a><a title='Anterior' href='?p=".($page-1)."'> < < Anterior </a> ";

for ($i = $page; $i <= $total_pages && $i<=($page+$display_pages); $i++) {
if ($i == $page) echo "<strong>$i - ";
else echo "</a><a title='p&aacute;gina $i' href='?p=$i'>$i</a> - "; }

if (($page+$display_pages)< $total_pages) echo "...";
if ($page<$total_pages) echo "<a title='Siguiente' href='?p=".($page+1)."'> Siguiente >> ";
echo "<a title='Fin' href='?p=$total_pages'>Fin >></a>";
mysql_free_result($resultado);
mysql_close($link);
NOTA: En la primer pagina de resultados aparece todo bien, el valor de la variable del formulario pasa, imprime abajo el paginador, todo ok. Cuando pasa a la segunda pagina ahi el paginador desaparece y el valor de la variable del form se pierde.
  #6 (permalink)  
Antiguo 06/03/2010, 17:43
Avatar de principiantedelphp  
Fecha de Ingreso: febrero-2010
Mensajes: 160
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Problemas con formulario

y que paso, amigo?
  #7 (permalink)  
Antiguo 06/03/2010, 17:43
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 16 años
Puntos: 127
Respuesta: Problemas con formulario

al parecer no sabes mucho de programacion.

cambia esto:

Código PHP:
$display_pages=10;
echo 
"<a title='Inicio' href='?p=1'>< < Inicio</a> ";
if (
$page>1) echo "</a><a title='Anterior' href='?p=".($page-1)."'> < < Anterior </a> ";

for (
$i $page$i <= $total_pages && $i<=($page+$display_pages); $i++) {
if (
$i == $page) echo "<strong>$i - ";
else echo 
"</a><a title='p&aacute;gina $i' href='?p=$i'>$i</a> - "; }

if ((
$page+$display_pages)< $total_pages) echo "...";
if (
$page<$total_pages) echo "<a title='Siguiente' href='?p=".($page+1)."'> Siguiente >> ";
echo 
"<a title='Fin' href='?p=$total_pages'>Fin >></a>";
mysql_free_result($resultado);
mysql_close($link); 
por esto

Código PHP:
$display_pages=10;
echo 
"<a title='Inicio' href='?p=1'>< < Inicio</a> ";
if (
$page>1) echo "</a><a title='Anterior' href='?p=".($page-1)."&busqueda=$_REQUEST[busqueda]'> < < Anterior </a> ";

for (
$i $page$i <= $total_pages && $i<=($page+$display_pages); $i++) {
if (
$i == $page) echo "<strong>$i - ";
else echo 
"</a><a title='p&aacute;gina $i' href='?p=$i&busqueda=$_REQUEST[busqueda]'>$i</a> - "; }

if ((
$page+$display_pages)< $total_pages) echo "...";
if (
$page<$total_pages) echo "<a title='Siguiente' href='?p=".($page+1)."&busqueda=$_REQUEST[busqueda]'> Siguiente >> ";
echo 
"<a title='Fin' href='?p=$total_pages'>Fin >></a>";
mysql_free_result($resultado);
mysql_close($link); 
  #8 (permalink)  
Antiguo 06/03/2010, 17:51
Avatar de principiantedelphp  
Fecha de Ingreso: febrero-2010
Mensajes: 160
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Problemas con formulario

Si no se mucho. Por otro lado, no funciona tu script, queda igual que antes, es decir Inicio-Fin sin numeros entre medio. Me gustaría que me explicaras:
Cita:
&busqueda=$_REQUEST[busqueda]
La variable del buscador (digamos, name) es "busqueda",
  #9 (permalink)  
Antiguo 06/03/2010, 18:09
Avatar de principiantedelphp  
Fecha de Ingreso: febrero-2010
Mensajes: 160
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Problemas con formulario

Y, que paso amigo?
  #10 (permalink)  
Antiguo 06/03/2010, 18:29
Avatar de principiantedelphp  
Fecha de Ingreso: febrero-2010
Mensajes: 160
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Problemas con formulario

Estaba intentando y creo que el problema puede ser que la variable $limit del query no pasa a la otra pagina. Podría ser eso? Gracias a todos
  #11 (permalink)  
Antiguo 06/03/2010, 18:38
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 16 años
Puntos: 127
Respuesta: Problemas con formulario

no el LIMIT no es

aber prueba esto

Código PHP:
$display_pages=10;
$BuSq=$_REQUEST['busqueda'];
echo 
"<a title='Inicio' href='?p=1'>< < Inicio</a> ";
if (
$page>1) echo "</a><a title='Anterior' href='?p=".($page-1)."&busqueda=".$BuSq."'> < < Anterior </a> ";

for (
$i $page$i <= $total_pages && $i<=($page+$display_pages); $i++) {
if (
$i == $page) echo "<strong>$i - ";
else echo 
"</a><a title='p&aacute;gina $i' href='?p=$i&busqueda=".$BuSq."'>$i</a> - "; }

if ((
$page+$display_pages)< $total_pages) echo "...";
if (
$page<$total_pages) echo "<a title='Siguiente' href='?p=".($page+1)."&busqueda=".$BuSq."'> Siguiente >> ";
echo 
"<a title='Fin' href='?p=$total_pages&busqueda=".$BuSq."'>Fin >></a>";
mysql_free_result($resultado);
mysql_close($link); 
con respecto a tu pregunta el REQUET recoge variables si son de post o get o coockie

osea no hace exepcion
  #12 (permalink)  
Antiguo 06/03/2010, 18:47
Avatar de principiantedelphp  
Fecha de Ingreso: febrero-2010
Mensajes: 160
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Problemas con formulario

Sigue igual. Mira:
1) En la plantilla está el formulario que guarda la cadena de texto en la variable $busqueda.
2) Cuando se hace click en "buscar" llama al archivo buscar.php.
3) En este archivo puse: $juego=$_POST["busqueda"]; (la variable $juego es la cadena de busqueda.
4) Luego de ejecutar el script, llama al archivo principal.php, y aquí coloco: $juego=$_POST["busqueda"];
5)En este archivo principal.php está el paginador, que no funciona para ninguna pagina, excepto la primera
  #13 (permalink)  
Antiguo 06/03/2010, 18:48
Avatar de principiantedelphp  
Fecha de Ingreso: febrero-2010
Mensajes: 160
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Problemas con formulario

$limit esta bien, lo imprime al valor sin problemas en la 2, 3, etc. paginas. Tendría que imprimir mas variables aparte de la del formulario? (La del formulario NO pasa)
  #14 (permalink)  
Antiguo 06/03/2010, 18:55
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 16 años
Puntos: 127
Respuesta: Problemas con formulario

ok mira prueba esto

Código PHP:
<?
$display_pages
=10;
echo 
"<a title='Inicio' href='?p=1'>< < Inicio</a> ";
if (
$page>1) echo "</a><a title='Anterior' href='?p=".($page-1)."&busqueda=".$juego."'> < < Anterior </a> ";

for (
$i $page$i <= $total_pages && $i<=($page+$display_pages); $i++) {
if (
$i == $page) echo "<strong>$i - ";
else echo 
"</a><a title='p&aacute;gina $i' href='?p=$i&busqueda=".$juego."'>$i</a> - "; }

if ((
$page+$display_pages)< $total_pages) echo "...";
if (
$page<$total_pages) echo "<a title='Siguiente' href='?p=".($page+1)."&busqueda=".$juego."'> Siguiente >> ";
echo 
"<a title='Fin' href='?p=$total_pages&busqueda=".$juego."'>Fin >></a>";
mysql_free_result($resultado);
mysql_close($link); 
?>
te explico lo que tienes que agregar es la veriable a el paginador.

ejemplo
cuando llamas a la siguien te paguna le tienes que pasar denuevo la veriable asi:
esto es lo que tienes:
Código PHP:
<a title='Siguiente' href='?p=".($page+1)."'
tienes que agregarle la variable a la url asi &busqueda=variable osea asi:
Código PHP:
<a title='Siguiente' href='?p=".($page+1)."&busqueda=".$juego."'
  #15 (permalink)  
Antiguo 06/03/2010, 19:02
Avatar de principiantedelphp  
Fecha de Ingreso: febrero-2010
Mensajes: 160
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Problemas con formulario

Entiendo bien lo que dices, pero no pasa la variable. Abri la pagina 2, volvi, luego la 3, etc. y nada. Imprimi $juego y como en los casos anteriores, solo imprime el valor en la pagina 1 y en las demas no tiene un valor (no imprime nada en pantalla). La verdad es que hace tiempo que quiero paginar los resultados del buscador (uso match against) y no puedo. Lo unico que hice fue que tirara todo sin paginar y, bueno, cuando te salen 10000 resultados de una busqueda se te cuelga cualquier navegador!.
  #16 (permalink)  
Antiguo 06/03/2010, 19:05
Avatar de principiantedelphp  
Fecha de Ingreso: febrero-2010
Mensajes: 160
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Problemas con formulario

Lo que no entiendo es porque una variable común (ejemplo $juego="accion") pasa sin problemas, y una variable con post no pasa
  #17 (permalink)  
Antiguo 06/03/2010, 19:12
Avatar de principiantedelphp  
Fecha de Ingreso: febrero-2010
Mensajes: 160
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Problemas con formulario

Creo que el problema puede estar en mi php.ini: Se encuentra así:
Cita:
register_globals = Off
NOTA: lo puse en ON, reinicie los servicios del wamp, nada, sigue igual

Última edición por principiantedelphp; 06/03/2010 a las 19:18
  #18 (permalink)  
Antiguo 06/03/2010, 19:17
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 16 años
Puntos: 127
Respuesta: Problemas con formulario

no, ese no es el problema.
como decimos los informaticos el problema es de capa 8

estudia mas tu codigo.
si ubiese un link de internet donde este tu codigo seria mas facil decirte donde esta el problema.
  #19 (permalink)  
Antiguo 06/03/2010, 19:22
Avatar de principiantedelphp  
Fecha de Ingreso: febrero-2010
Mensajes: 160
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Problemas con formulario

Espera un segundo y te lo busco. Lo saque de un blog y funciona perfectamente, menos para el buscador.
  #20 (permalink)  
Antiguo 06/03/2010, 19:28
Avatar de principiantedelphp  
Fecha de Ingreso: febrero-2010
Mensajes: 160
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Problemas con formulario

Creo que era esta:
Cita:
http://www.deambulando.com/2009/08/10/paginacion-sencilla-en-php/
  #21 (permalink)  
Antiguo 06/03/2010, 20:13
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 16 años
Puntos: 127
Respuesta: Problemas con formulario

el problema es este:
no sabes programar y estas perdiendo el tiempo de los demas.
lo que tienes que hacer es colocar la misma variable que buscas en los links de paginacion.

deberias estudiar mas, no se que hacer mas que asistencia remota a tu pc para arreglarte el codigo si quieres hasmelo saber y te explico como es mucho mas facil.
  #22 (permalink)  
Antiguo 07/03/2010, 06:53
Avatar de principiantedelphp  
Fecha de Ingreso: febrero-2010
Mensajes: 160
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Problemas con formulario

Cuando voy a la pagina 2, $page=1. Creo que el problema es que no pasa la variable $page. Como hago para pasar esa variable junto con la otra?

Última edición por principiantedelphp; 07/03/2010 a las 07:37

Etiquetas: formulario
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 10:44.