tengo un buscador que consiste en un form y muestra los resultados en la misma página, en un DIV, pero ejecuta otra, es decir, muestra los resultados en el DIV pero la busqueda se realiza en otra, es así:
index.php
Código PHP:
<script language="javascript" src="javascript/jquery-1.3.2.js"></script>
<script language="javascript">
$(document).ready(function() {
// crear un loader - no es necesario
$().ajaxStart(function() {
$('#loading').show();
$('#result').hide();
}).ajaxStop(function() {
$('#loading').hide();
$('#result').fadeIn('slow');
});
// Interceptamos el evento submit que viene del form
$('#form, #fo3').submit(function() {
// Enviamos el formulario usando AJAX
$.ajax({
type: 'GET',//definimos el método de envío
//url: $(this).attr('action'),//para enviar las variables a la misma página
url: "search.php",//para forzar enviar a otra página especificada
data: $(this).serialize(),
// Mostramos un mensaje con la respuesta de PHP en el div result
success: function(data) {
$('#result').html(data);
}
})
return false;
});
})
</script>
<form method="GET" action="search.php" id="fo3" name="fo3" >
<input name="q" type="text" id="search_box" />
<select name="barrio" id="barrio">
<option value="1">Barrio1</option>
<option value="2">Barrio2</option>
</select>
<select name="categoria" id="categoria">
<option value="1">categoria1</option>
<option value="2">categoria2</option>
</select>
</form>
<div id="loading" style="display:none" align="center"><img src="activos/bigLoader.gif" /></div>
<div id="result" align="center"></div>
Código PHP:
<?php include ("include/conexion.php");
if (isset($_GET['last_msg_id'])){ $last_msg_id=$_GET['last_msg_id'];}
if (isset($_GET['action'])){ $action=$_GET['action'];}
if(!(isset($action))){?>
<!-- CSS & script para paginado scroll-->
<link rel="stylesheet" href="css/9lessons.css" type="text/css" />
<script type="text/javascript" src="javascript/jquery-1.3.2.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var q = '<?php echo $_GET['q']; ?>';
var barrio ='<?php echo $_GET['barrio']; ?>';
var categoria = '<?php echo $_GET['categoria']; ?>';
function last_msg_funtion()
{
var ID=$(".name_div_result:last").attr("id");
$('div#last_msg_loader').html('<img src="bigLoader.gif">');
$.post("search.php?action=get&last_msg_id="+ID+"&q="+q+"&barrio="+barrio+"&categoria="+categoria,
function(data){
if (data != "") {
$(".message_box:last").after(data);
}
$('div#last_msg_loader').empty();
});
};
$(window).scroll(function(){
if ($(window).scrollTop() == $(document).height() - $(window).height()){
last_msg_funtion();
}
});
});
</script>
<?php include('load_first.php');?>
<div id="last_msg_loader"></div>
<?php }else{ include('load_second.php');}?>
En general, todo funciona, PERO, solo por separado, es decir, si pruebo solo el index.php funciona de maravillas, si pruebo solo el search.php pues funciona de maravillas y "pagina escroleando" super bien, PERO, cuando pongo al index apuntar al search pues ahí el escroleado no funciona. Estuve viendo que cuando haces una llamada en jquery pues no puedo hacer otra llamada de jquery o javascript dentro de una página que fue creada a través de jquery, en fin, no se como salir del problema, quizá es problema de concepto, lo que no se es como poder hacer esto .. si alguien tiene alguna idea por favor .. gracias !!!