Ver Mensaje Individual
  #10 (permalink)  
Antiguo 01/04/2009, 16:09
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

............ Dios... teneme paciencia allá arriba también......!!!!!

Bueno... quiero que sepan que le pongo toda la voluntad que tengo y que dentro de los plazos que me corren, trato de entender este mundo que no exploré antes.

Ahora sí... aca vamos... les muestro lo siguiente que hice en base a un ejemplo que encontré pero que me funcionó a medias.

Una gran parte de lo que está ahora en pagina2.php lo saqué de esta aquí:

PAGINAR SIN RESETEAR

Las páginas de mi proyecto son las siguientes:

buscador.php (lo llamo con un include en las páginas donde se encuentre)
pagina1.php (contiene el div="detalles")
pagina2.php (contiene la consulta a la BDD)
funciones.js (contiene las funciones de ajax)

buscador.php envía los datos a página2.php para que realice la búsqueda.

pagina2.php
Código PHP:
header('Content-Type: text/html; charset=ISO-8859-1');

    include(
'con.php');
    
    
// conexion a la base
    
$conexion mysql_connect($host_db$usuario_db$pass_db) or die ("no se ha podido conectar a la BD");
    
mysql_select_db($base_db$conexion) or die ("no se ha podido seleccionar la BD");

$id_tipopropiedad $_GET['id_tipopropiedad'];
$id_operacion $_GET['id_operacion'];
$select1 $_GET['select1'];
$select2 $_GET['select2'];
$id_moneda $_GET['id_moneda'];


if (isset(
$_REQUEST['pos']))
  
$inicio=$_REQUEST['pos'];
else
  
$inicio=0;

// realizar esta funcion si se presiona el boton enviar en el formulario de busqueda
if(isset($_GET['searchprop']))

// 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 opcion 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";

$registros=mysql_query("SELECT * FROM propiedades, ..... $condiciones ORDER BY id_propiedad LIMIT  $inicio,3"$conexion) or  die("Problemas en el select:".mysql_error());

  
$impresos=0;
  while (
$reg=mysql_fetch_array($registros))
  {
    
$impresos++;
    echo 
"Nombre:".$reg['desc_localidad']."<br>";
    echo 
"Fecha:".$reg['desc_zona']."<br>";
    echo 
"Imagen:<img src=resizeb.php?img=imageprop/" .$reg['foto']. ">";
//    echo "Comentarios:".$reg['descripcion']."<br>";
    
echo "<br>";
  }
  
mysql_close($conexion);
  if (
$inicio==0)
    echo 
"anteriores ";
  else
  {
    
$anterior=$inicio-3;
    echo 
"<a href=\"pagina2.php?pos=$anterior$id_tipopropiedad$id_operacion$select1$select2$id_moneda\" id=\"ant\">Anteriores</a>";
  }
  if (
$impresos==3)
  {
    
$proximo=$inicio+3;
    echo 
"<a href=\"pagina2.php?pos=$proximo$id_tipopropiedad$id_operacion$select1$select2$id_moneda\" id=\"sig\">Siguientes</a>";
  }
  else
    echo 
"siguientes";

  } 
pagina1.php
Código HTML:
<script src="funciones.js" language="JavaScript"></script>
</head>
<body>

<div id="detalles">
</div>

</body> 
funciones.js
Código:
addEvent(window,'load',inicializarEventos,false);

function inicializarEventos()
{
  cargarPagina('pagina2.php'); 
}

function presionEnlace(e)
{
  if (window.event)
  {
    window.event.returnValue=false;
    var url=window.event.srcElement.getAttribute('href');
    cargarPagina(url);     
  }
  else
    if (e)
    {
      e.preventDefault();
      var url=e.target.getAttribute('href');
      cargarPagina(url);     
    }
}


var conexion1;
function cargarPagina(url) 
{

  if(url=='')
  {
    return;
  }
  conexion1=crearXMLHttpRequest();
  conexion1.onreadystatechange = procesarEventos;
  conexion1.open("GET", url, true);
  conexion1.send(null);
}

function procesarEventos()
{
  var detalles = document.getElementById("detalles");
  if(conexion1.readyState == 4)
  {
    detalles.innerHTML = conexion1.responseText;
    var ob1=document.getElementById('sig');
    if (ob1!=null)
      addEvent(ob1,'click',presionEnlace,false);
    var ob2=document.getElementById('ant');
    if (ob2!=null)
      addEvent(ob2,'click',presionEnlace,false);
  } 
  else 
  {
    detalles.innerHTML = '';
  }
}

//***************************************
//Funciones comunes a todos los problemas
//***************************************
function addEvent(elemento,nomevento,funcion,captura)
{
  if (elemento.attachEvent)
  {
    elemento.attachEvent('on'+nomevento,funcion);
    return true;
  }
  else  
    if (elemento.addEventListener)
    {
      elemento.addEventListener(nomevento,funcion,captura);
      return true;
    }
    else
      return false;
}

function crearXMLHttpRequest() 
{
  var xmlHttp=null;
  if (window.ActiveXObject) 
    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  else 
    if (window.XMLHttpRequest) 
      xmlHttp = new XMLHttpRequest();
  return xmlHttp;
}
Qué pasó con esto... si ejecuto buscador.php y envío los datos a página2.php, me trae los resultados que solicito pero no funciona bien el paginador. Al paginar me aparece ?pos=32 en SIGUIENTE. Igual este paginador no me gusta. Trataré de que sea del tipo ANTERIOR 1 2 3 ... SIGUIENTE... queda más lindo.

Peeero, noten esto en el código funciones.js:

function inicializarEventos()
{
cargarPagina('pagina2.php');
}

¿Cómo hago para que al ejecutar el buscador.php me lleve a pagina1.php y me muestre dentro del div="detalles" el resultado de la búsqueda que realiza pagina2.php, pero paginada?

Trato, trato, tratooooooooooo ....

Gracias a todos... de verdad.

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