Nueva pregunta

Pregunta:

Fecha: 18-01-2016 21:01:33 (En Español)

Buscador y paginación con AJAX PHP y SQL[Resuelta]

Hola buenas noches estuve varias horas probando de 100 maneras diferente (disculpen la ignorancia estoy aprendiendo a usar javascript) y no logro conseguir que funcione los botones del paginador
en el html principal tengo:

<script type="text/javascript">
    $(document).ready(function() {
				$('.paginate').on('click', function(){
	
                          $("#resultado").html("<p align='center'>Buscando en Guido Batan Maquinarias...</p>");

		var pag_cc = $(this).attr('data');		
		var dataString = 'pag_cc='+pag_cc;
		
		$.ajax({
            type: "GET",
            url: "buscar.php",
            data: dataString,
            success: function(data) {
				$('#resultado').fadeIn(1000).html(data);
            }
        });
    }); 
                                
var consulta;
                                                                          
         //hacemos focus al campo de búsqueda
        $("#busqueda").focus();
                                                                                                    
        //comprobamos si se pulsa una tecla
        $("#busqueda").keyup(function(e){
              //obtenemos el texto introducido en el campo de búsqueda
              consulta = $("#busqueda").val();
                                                                           
              //hace la búsqueda
                                                                                  
              $.ajax({
                    type: "POST",
                    url: "buscar.php",
                    data: "b="+consulta,
                    dataType: "html",
                    beforeSend: function(){
                          //imagen de carga
                          $("#resultado").html("<p align='center'>Buscando en Guido Batan Maquinarias...</p>");
                    },
                    error: function(){
                          alert("OOps se ha producido un error, intente la busqueda nuevamente.");
                    },
                    success: function(data){                                                    
                          $("#resultado").empty();
                          $("#resultado").append(data);
                                                             
                    }
              });
                                                                                  
                                                                           
        });		
		});
		</script>
<br>
<h3>Buscar en todos los Tutoriales</h3>
<div class="form_3"> 
<input type="text" name="busc" id="busqueda" size="30" placeholder="ej.: tabla de tiempo y temperatura"/>  
</div>          
<div id="resultado"></div>
<hr>
<br>


y en el php realizo la consulta en la base de datos siempre y cuando me llegue el post "b" Eso funciona perfecto
lo que no logro hacer funcionar es el get de la paginacion
en los botones de la paginacion del php tengo por ejemplo:
<li><a id="paginate" data="<?php echo $id_g-1; ?>">« Anterior</a></li>


ojala puedan ayudarme

de ante mano muy agradecido!!
saludos compañeros
Etiquetas: AJAX - HTML - Javascript - JQuery - MySQL - PHP - Pregunta Votos: 4 - Respuestas: 14 - Vistas: 24 Compartir en: Google Facebook Twitter LinkedIn Link
 

Respuestas:

  • Fecha: 19-01-2016 05:57:09 hola por lo que entiendo por tu pregunta veo que no puedes manipular el evento cuando haces click en tu paginacion , estoy viendo este codigo

      $('.paginate').on('click', function(){
    });
    


    para ver si esta obedeciendo tu click haz un alert

    saludos
      Votos: 4 - Link respuesta
     
  • Fecha: 19-01-2016 09:20:47 Hola,
    Primero que todo te recomiendo diferenciar entre JavaScript y lo que es JQuery.
    Aunque sin casi el mismo lenguaje siempre cometen el error de no incluir aveces la librería JQuery pensando que es JavaScript.
    Segundo cuál es el problema que tienes se más especifico necesitamos saber que accion ejecuta o simplemente no lo hace.
    Para eso usa el Alert(); como dice Juan.
    Salu2
      Votos: 4 - Link respuesta
     
  • Fecha: 19-01-2016 10:27:35 veo que pones esto

        <li><a id="paginate" data="<?php echo $id_g-1; ?>">« Anterior</a></li>
    


    y cuando quieres programar el evento click haces esto

    $('.paginate').on('click', function(){
    



    como ves tu accedes mediante ".paginate" , pero en tu caso es un id id="paginate"

    recuerda que cuando es clase se accede mendiante el punto "." y cuando es id se accese mediante "#"

    en tu caso deberia ser con #

    expongo codigo

    $('#paginate').on('click', function(){
    




    saludos
      Votos: 4 - Link respuesta
     
  • Fecha: 19-01-2016 11:41:50 gracias por las respuestas si efectivamente puse # y el alert('perrfect!'); y el boton no funciona.


    y el codigo perteneciente al paginador html quedando asi:

    		 $('#paginate').on('click', function () {
    					//alert('perrfect!');
    		
                              $("#resultado").html("<p align='center'>Paginando...</p>");
    						 
    
    		var pag_cc = $(this).attr('data');		
    		var dataString = "pag_cc="+pag_cc;
    		
    		$.ajax({
                type: "POST",
                url: "buscar.php",
                data: dataString,
                success: function(data) {
    				$('#resultado').fadeIn(1000).html(data);
                }
            });
        });		



    y no pasa nada





    el codigo de php el cual anda bien. para que tengan de referencia es:





    //Comienzo de Paginación.
    if($id_g <= $total_paginas_cc){
    ?>
      <ul class="pagination">
    <?php
    if ($total_paginas_cc > 1) {
          if ($id_g < $total_paginas_cc){	
    ?>
    <h57>Más resultados!..</h57>
    <br>
    <?php
    	  }	  
    	   if ($id_g<2){
    ?>		   
    	<li><a class="previous-off">« Anterior</a></li>
    <?php
    	   }   
       if ($id_g>1){
    ?>
    
    <li><a id="paginate" data="<?php echo $id_g-1; ?>">« Anterior</a></li> 
    			             
      
    <?php 
       }
          for ($i=1;$i<=$total_paginas_cc;$i++) {
             if (!$id_g == $i)
                //si el índice no corresponde con la página mostrada actualmente,
                //coloco el enlace para ir a esa página
    ?>			
    			                <li><a <?php if ( $id_g == $i ){ ?>class="active"<?php }else{ ?> id="paginate" data="<?php echo $i; ?>"<?php } ?>><?php echo $i; ?></a></li>
    <?php			
    			
    			
          }
          if ($id_g <$total_paginas_cc){
    	 ?>
    	<li><a id="paginate" data="<?php echo $id_g+1; ?>">Siguiente »</a></li>
    <?php 
    	  }
          if ($id_g == $total_paginas_cc){	
    ?>
    <li><a class="next-off">Siguiente »</a></li>	  
    <?php 
    }
    }
    ?>
      </ul>
    <?php
    }// FIN de la paginación.
    ?>




    LES DEJO LA URL DONDE SE ESTA EJECUNTANDO EL SCRIPT DE PRUEBA:

    http://www.guidobatanmaquinarias.com/test





      Votos: 3 - Link respuesta
     
  • Fecha: 19-01-2016 12:51:14 Amigo podrías postear por favor completo el código PHP para ser mayormente analizado y veo que en tu página ya haz usado antes la paginación con él Ajax.
    Y me pregunta es si es el mismo código.
      Votos: 2 - Link respuesta
     
  • Fecha: 19-01-2016 13:18:58 hola Edinson gracias por la respuesta

    El codigo php funciona perfecto el problema es el html.

    los botones de paginacion no son accedidos por ajax y probe todas las maneras pero no logro que encuentre la instancia del boton. Hay alguna manera de imprimir la posicion de un elemento html para que luego lo asignemos correctamente como on click. ????

    (como cuando vemos todas las posicion de elementos de un array con var_dump() en php


    en los demas paginas php de paginaciones uso paginacion con php en la misma pagina y no uso ajax.
      Votos: 3 - Link respuesta
     
  • Fecha: 19-01-2016 13:51:27 Hola,
    Amigo acabo de ver el código fuente de tu página y encontré el error.
    Tú habrás bn lo que es el DOM.
    $(document).ready(function() {
    //pones tu código de paginación bien
    });
    

    Pero cuando pones el de la paginación como tienes el JQuery en la parte de arriba no ha sido cargado el DOM y el ID #paginate todavía no existe.
    $(document).ready(function() {
    //pones tu código de paginación bien
    });
    // Y tú código de la paginación pero no sirve si no existe el DOM todavía
    

    Así que tienes dos opciones.
    1 remplazar poniendo la paginación dentro de la función que inicia el DOM
    $(document).ready(function() {
    //pones tu código de paginación bien
    // Y tú código de la paginación bien
    });
    

    2 poner el código de la paginación antes de terminar el código </body> y ya habrá cargado el DOM.

    Salu2
    Espero haberte ayudado.
      Votos: 2 - Link respuesta
     
  • Fecha: 19-01-2016 14:13:03 Hola men acabo de ver tu código y veo que tu das el mismo id a las numeraciones como al anterior y siguiente, es ahí que como tienen el mismo id te sale error una solución sencilla sería q cambies esto en ves que diga id="paginate" cambialo por paginar="paginate" ahora tu evento sería así esto

    $(document).on("click","a[paginar='paginate']",function(){
    


    Saludos
      Votos: 2 - Link respuesta
     
  • Fecha: 19-01-2016 14:32:18 Hola,
    Juan siempte me gustan tus soluciones pero creo que en este caso tampoca se aplica.
    Yo veo que el único problema es el DOM ya lo probé.
      Votos: 2 - Link respuesta
     
  • Fecha: 19-01-2016 15:45:56 Por eso mismo edison para evitar los.errores más.comunes cuando.se crea un elemento después de Cargar el dom la.solución es usar el on y un post anterior explique.sobre ese tema ahora otra posible falla podría.ser q el.compañero no este usando un versión actual del jquery de ser eso.cierto puede usar el live, pero lo.preferible es que use el.jquery con la.versión actual y q haga el.cambio q especifique en el post anterior   Votos: 2 - Link respuesta
     
  • Fecha: 19-01-2016 16:58:50 Hola,
    Si Juan es cierto está usando una une versión antigua del JQuery.
    Y acabo de ver que hay problemas con $.ajax(); ha sido categorizada como inservible por la seguridad :(
      Votos: 2 - Link respuesta
     
  • Fecha: 19-01-2016 20:38:40 Muchas gracias por las respuestas a todos ustedes voy a ir aplicando todo lo mensionado desde ya muy agradecido. Con respecto a la seguridad es cierto que ajax es inseguro siempre lo pense pero bueno estoy aprendiendo un poco. Pero de todas maneras "todo es inseguro" y los verdaderos hackers o lo que sea. que inyectan xss o cualquier cosa... son illuminatis y "los accidentes verdaderamente no existen".

    Pues bien les dejo un link para que lean sobre por ejemplo HTTPS que no se encuentran estas webs en cualquier lado

    http://es.sott.net/article/26845-Por-que-HTTPS-y-SSL-no-son-tan-seguros-como-piensas

    con respecto a cualquier ataque cualquier y de todas las maneras posibles:
    van escalando hasta si es tan segura la web. "Lo más seguro denegación de servicio" pero eso es para "voltiar a una gran empresa que no se somete a las normas de los dearriba".

    Todo involucra tiempo y dinero en ataques grandes.
    Una web pequeña puede ser vulnerada, pero en milisegundos borramos todo e ingresamos una copia de seguridad y todo sigue funcionando luego nos reimos buscando en donde nos atacaron.

    Asique en realidad la seguridad.... es una ilusión holográfica. Y los lenguajes de programación y toda la web del mundo es controlada, manejada y actualizada por ellos. Como tambien los bancos y "la vida cotidiana de la gente". Por ejemplo ponen motochorros en las calles para que la gente tenga miedo luego a los pocos dias lo sacan y sale un anuncio en tv para imponer medidas.

    Arman guerras de ambos bandos y financian a los que ganan y a los que pierden.
    Los terroristas no existen! Lo del 11-S, Francia,etc, etc, etc ya fue planeado hace años y esta en Los Simpsons y en cartas que lo iban hacer en algun momento.

    * Yo tengo un script que si no detecta pais, ciudad, etc lo rajo por cabecera a la url google.com
    si se actualiza la pagina varias veces en tantos milisegundos lo rajo por cabecera a la url google.com
    entre otras..


    hay quedo el buscador funcionando
    http://www.guidobatanmaquinarias.com/test
    saludos y nuevamente gracias!!
      Votos: 4 - Link respuesta
     
  • Fecha: 20-01-2016 01:50:01 Bueno amigo un placer ayudarte te doy una ultima sugerencia pon en el enlace href="#" para que no quede el mause como escritura/seleccion o con CSS puedes poner
    #pagination{
    cursor:pointer;
    }
    
      Votos: 3 - Link respuesta
     
  • Fecha: 20-01-2016 03:51:43 muy agradecido ahora si quedo mas presentable , un saludo   Votos: 1 - Link respuesta
     
Para participar activamente de la comunidad primero debes autenticarte, ingresa al sistema.Iniciar Sesión
 
frjcbbae garagebible.com