............ 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.