Luego de una larga lucha y de mucho estudio por mi parte, logré armar un buscador con el paginador dentro de una capa para ver los resultados de la búsqueda sin que se resetee toda la misma.
El buscador está armado con listas anidadas.
El UNICO problema RARO que tengo, es que en mi PC me funciona PERFECTO, pero al subir todo al servidor de internet, cuando hago la misma búsqueda no me está trayendo los resultados seleccionados según lo que elijo de cada LISTA ANIDADA, sino que me trae directamente TODO.
Les paso el código Ajax para que lo vean:
paginador.js
Código:
El botón de BUSCAR es así: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; } function Pagina(nropagina){ //donde se mostrará los registros divContenido = document.getElementById('respuesta'); 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 // declaro las variables de los document.getElementById que recupero de la pagina var select1 = document.getElementById("select1"); var select2 = document.getElementById("select2"); var select3 = document.getElementById("select3"); var id_cocina = document.getElementById("id_cocina"); var id_precio = document.getElementById("id_precio"); // ...y lo envio en la variable m.value para q lo procese resto_lista.php ajax.open("GET","resto_lista.php?pag="+nropagina+"&select1="+select1.value+"&select2="+select2.value+"&select3="+select3.value+"&id_cocina="+id_cocina.value+"&id_precio="+id_precio.value); divContenido.innerHTML= '<img src="ajaxloader.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) }
Código HTML:
<input name="boton" type="button" id="boton" onclick="Pagina(1);" value="Buscar" />
resto_lista.php
Código PHP:
// realizar esta función si se apretó el botón de enviar en el formulario de busqueda
if(isset($_GET['boton']))
// declarar variables los datos del formulario
$select1 = $_GET['select1'];
$select2 = $_GET['select2'];
$select3 = $_GET['select3'];
$idcocina = $_GET['id_cocina'];
$idprecio = $_GET['id_precio'];
{
// declarar las condiciones usando la opción WHERE, dependiendo de lo enviado en el formulario
$condiciones = "";
if ($select1 != "") $condiciones .= " AND restaurantes.id_provincia = $select1";
if ($select2 != "" && $condiciones != "") $condiciones .= " AND restaurantes.id_localidad = $select2";
if ($select3 != "" && $condiciones != "") $condiciones .= " AND restaurantes.id_zona = $select3";
if ($idcocina != "" && $condiciones != "") $condiciones .= " AND restaurantes.id_cocina = $idcocina";
if ($idprecio != "" && $condiciones != "") $condiciones .= " AND restaurantes.id_precio = $idprecio";
// obtener datos de la base
$registros = 8;
$pag = $_GET['pag'];
if (!$pag) {
$inicio = 0;
$pag = 1;
}
else {
$inicio = ($pag - 1) * $registros;
}
$sql = "SELECT * FROM ........ WHERE ....... $condiciones ORDER BY id_rubro";
$result = mysql_query($sql, $conexion);
$total_registros = mysql_num_rows($result);
$result = mysql_query("SELECT * FROM ....... WHERE ....... $condiciones ORDER BY id_rubro LIMIT $inicio, $registros", $conexion) or die (mysql_error());
.........
// se listan los resultados en 2 filas y 4 columnas y se arma el paginador...
// Paginador
$total_paginas = ceil($total_registros / $registros);
$PagAnt=$pag-1;
$PagSig=$pag+1;
if(($PagAnt) > 0) {
echo "<a href='javascript:Pagina(" .$PagAnt. ")'>« ANTERIOR</a> ";
} else {
echo "<b>« ANTERIOR</b> ";
}
for ($i=1; $i<=$total_paginas; $i++){
if ($pag == $i) {
echo "<b>".$pag."</b> ";
} else {
echo "<a href='javascript:Pagina(" .$i. ")'>$i</a> ";
}
}
if(($PagSig)<=$total_paginas) {
echo " <a href='javascript:Pagina(" .$PagSig. ")'>SIGUIENTE »</a>";
} else {
echo "<b>SIGUIENTE »</b> ";
¿alguna sugerencia después de haber luchado tanto con esto?
Gracias a todos y saludos.
Marx.