Ver Mensaje Individual
  #2 (permalink)  
Antiguo 25/06/2003, 04:30
josemi
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

Lo que posiblemente te diga es que no existe el indice 'pagina' en el array $_POST. Y es cierto. Fijate en la linea donde creas el link al resto de paginas:
Código PHP:
echo "<a href='buscador.php?pagina=" $i "&criterio=" $_POST['buscar'] . "'>" $i "</a> "
Pasas los valores por la URL, que es el metodo GET, con los que los valores estaran en el array $_GET. Y es en ese array donde debes leerlos. Ademas, el nombre de la variable que pasas es criterio, no buscar.

Pero como supongo que la primera vez recibes el termino de busqueda de un formulario POST, tambien debes comprobar el POST para ese caso. Podrias tambien cambiar el method de tu formulario a GET y usar siempre $_GET. Pero yo personalmente prefiero que los formularios sean POST. Asi que lo que yo haria seria primero mirar si la variable esta en $_POST, si no lo esta mirar en $_GET.

Yo para esto suelo asignar al principio del script los valores pasados a unas variables y trabajar en todo el script con estas variables (no como tu que pones el $_POST en el link). Para facilitarme la tarea uso el operador ternario ?: (viejo conocido mio de C). Seria algo asi (teniendo en cuenta que debes llamar igual el campo del formulario y el parametro de la URL):
Código PHP:
$buscar=(isset($_POST['buscar']))?$_POST['buscar']:((isset($_GET['buscar']))?$_GET['buscar']:NULL); 
Luego uso $buscar en todo el codigo cuando quiero usar su valor. El NULL lo puedes sustituir por '' si prefieres (dependiendo de como quieras comprobar si tiene valor).

El operador ternario equivale a esta funcion:
Código PHP:
function tenario($condicion,$verdadero,$falso) {
  if (
true==$condicion) {
    return 
$verdadero;
  } else {
    return 
$falso;
  }
}
// estas dos lineas son equivalentes
$var=(10==$valor)?'Vale 10':'No vale 10';
$var=ternario((10==$valor),'Vale 10','No vale 10');

Para mas info del operador ternario, mira en el manual en la seccion de operadores.

Espero haber sido de ayuda.
__________________
Josemi

Aprendiz de mucho, maestro de poco.