Ver Mensaje Individual
  #20 (permalink)  
Antiguo 15/04/2009, 15:49
marx-pola
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 22 años, 7 meses
Puntos: 1
Respuesta: Paginar por capas sin resetar la pagina

Hola a todos!!! Bueno... gracias a mi gran esfuerzo, estoy empezando a entender un poco más del tema, básicamente de Ajax, a quien elegí para no marearme más de lo que estuve. Así que hasta que le agarre la mano, seguiré con él.

Lo que no sé hacer es que la consulta procese los datos que envío por el formulario.

Las 3 páginas son estas:
index.php
buscador.php
consulta.php

index.php
Código:
function objetoAjax(){
 var xmlhttp=false;
  try{
   xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  }catch(e){
   try {
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
   }catch(E){
    xmlhttp = false;
   }
  }
  if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
   xmlhttp = new XMLHttpRequest();
  }
  return xmlhttp;
}


// MOSTRAR RESULTADOS DE LA CONSULTA
function MostrarConsulta(datos){
	divResultado = document.getElementById('resultado');
	ajax=objetoAjax();
	ajax.open("GET", datos);
	ajax.onreadystatechange=function() {
		if (ajax.readyState==4) {
			divResultado.innerHTML = ajax.responseText
		}
	}
ajax.send(null)
}


// PAGINAR RESULTADOS
function Pagina(nropagina){
 //donde se mostrará los registros
 divContenido = document.getElementById('resultado');
 
 ajax=objetoAjax();
 //uso del medoto GET
 //indicamos el archivo que realizará el proceso de paginar
 //junto con un valor que representa el nro de pagina
 ajax.open("GET", "consulta.php?pag="+nropagina);
 divContenido.innerHTML= '<img src="anim.gif">';
 ajax.onreadystatechange=function() {
  if (ajax.readyState==4) {
   //mostrar resultados en esta capa
   divContenido.innerHTML = ajax.responseText
  }
 }
 //como hacemos uso del metodo GET
 //colocamos null ya que enviamos 
 //el valor por la url ?pag=nropagina
 ajax.send(null)
}


  <?php include('buscador.php')?>

<div id="resultado"> </div>
buscador.php
Código HTML:
<form name="consulta" action="" onsubmit="MostrarConsulta('consulta.php'); return false">
...........
</form> 

consulta.php
Código PHP:
    include('conectar.php');

// declarar variables los datos del formulario
$id_tipopropiedad $_GET['id_tipopropiedad'];
$id_operacion $_GET['id_operacion'];
$select1 $_GET['select1'];
$select2 $_GET['select2'];
$id_moneda $_GET['id_moneda'];

// declarar las condiciones usando la opci&oacute;n WHERE, dependiendo de lo enviado en el formulario
$condiciones "";
if (
$id_tipopropiedad != ""$condiciones .= " AND propiedades.id_tipopropiedad = $id_tipopropiedad";
if (
$id_operacion != "" && $condiciones != ""$condiciones .= " AND propiedades.id_operacion = $id_operacion";
if (
$select1 != "" && $condiciones != ""$condiciones .= " AND propiedades.id_localidad = $select1";
if (
$select2 != "" && $condiciones != ""$condiciones .= " AND propiedades.id_zona = $select2";
if (
$id_moneda != "" && $condiciones != ""$condiciones .= " AND propiedades.id_moneda = $id_moneda";


 
$RegistrosAMostrar=4;

 
//estos valores los recibo por GET
 
if(isset($_GET['pag'])){
  
$RegistrosAEmpezar=($_GET['pag']-1)*$RegistrosAMostrar;
  
$PagAct=$_GET['pag'];
  
//caso contrario los iniciamos
 
}else{
  
$RegistrosAEmpezar=0;
  
$PagAct=1;
 }

 
$Resultado=mysql_query("SELECT * FROM propiedades ...... $condiciones ORDER BY id_propiedad LIMIT $RegistrosAEmpezar, $RegistrosAMostrar",$conexion);
 
 echo 
"<table border='1px'>";
 while(
$MostrarFila=mysql_fetch_array($Resultado)){
  echo 
"<tr>";
  echo 
"<td>".$MostrarFila['id_propiedad']."</td>";
  echo 
"<td>".$MostrarFila['direccion']."</td>";
  echo 
"<td>".$MostrarFila['foto']."</td>";
  echo 
"</tr>";
 }
 echo 
"</table>";

 
//******--------determinar las páginas---------******//
 
$NroRegistros=mysql_num_rows(mysql_query("SELECT * FROM propiedades.... $condiciones ORDER BY id_propiedad",$conexion));
 
 
$PagAnt=$PagAct-1;
 
$PagSig=$PagAct+1;
 
$PagUlt=$NroRegistros/$RegistrosAMostrar;

 
//verificamos residuo para ver si llevará decimales
 
$Res=$NroRegistros%$RegistrosAMostrar;

 
// si hay residuo usamos funcion floor para que me
 // devuelva la parte entera, SIN REDONDEAR, y le sumamos
 // una unidad para obtener la ultima pagina
 
if($Res>0$PagUlt=floor($PagUlt)+1;
 
 
//desplazamiento
 
echo "<a href='javascript:Pagina(1)'>Primero</a> ";
     if(
$PagAct>1
         echo 
"<a href='javascript:Pagina(" $PagAnt")'>Anterior</a> ";

 echo 
"<strong>Pagina ".$PagAct."/".$PagUlt."</strong>";
     if(
$PagAct<$PagUlt)
         echo 
"<a href='javascript:Pagina(" .$PagSig")'>Siguiente</a> ";

 echo 
"<a href='javascript:Pagina(" .$PagUlt")'>Ultimo</a>"
Como les decía antes, al ejecutar el formulario me aparece toda la info de la base dentro del div resultado, pero el archivo consultas.php no procesa las $condiciones.

¿Deberían pasar por alguna función de ajax o me estoy olvidando de poner algo? Si pasa por ajax, ¿me dicen porfa como se hace?

Muchas gracias a todos, por la ayuda y la paciencia.

Saludos. Marx.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.