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