Foros del Web » Programando para Internet » Javascript »

class deja de funcionar tras busqueda usando ajax

Estas en el tema de class deja de funcionar tras busqueda usando ajax en el foro de Javascript en Foros del Web. hola de antemano pido disculpa si el tema no pertenece a javascript en lo particular pienso de que si ok paso a decirles mi problema. ...
  #1 (permalink)  
Antiguo 22/12/2012, 22:03
 
Fecha de Ingreso: noviembre-2008
Mensajes: 110
Antigüedad: 15 años, 5 meses
Puntos: 2
class deja de funcionar tras busqueda usando ajax

hola de antemano pido disculpa si el tema no pertenece a javascript en lo particular pienso de que si ok paso a decirles mi problema.

tengo una pagina index.php que tiene este codigo entre head



Código PHP:
<link media="screen" rel="stylesheet" href="colorbox.css" />
    <
script src="js/jquery.min.js" type="text/javascript" charset="utf-8"></script>
    <script src="js/jquery.colorbox.js"></script>
    <script src="js/jquery.uniform.js" type="text/javascript" charset="utf-8"></script>
    <script>
        $(document).ready(function(){
            $(".facturas").colorbox({iframe:true, width:"90%", height:"75%"});
              $(function(){
        $("input, textarea, select, button").uniform();
      });
        });
    </script> 
ok , este escript hace k me levante un popup muy atractivo con incluir una class a un link ejemplo:
<a class='facturas' href='factura.php'><img src='images/editar.png'></a>

la class es :facturas.
ok, este escrip funciona solo al cargar index.php y k el link este en esa pagina...el problema que tengo esk en index.php tengo un buscador de facturas y pasa su busqueda por medio de ajax. y me muestra su resultado en un div llamado resultado... pero ya este link ya no funciona <a class='facturas' href='factura.php'><img src='images/editar.png'></a> (este link me lo tiro el resultado de la busqueda obtenida en ajax..)

el archivo ajax es este...

Código PHP:
function buscarDatos(){ 
      
divFormulario document.getElementById('formulario');
      
divResultado document.getElementById('resultado');
      
          
buscar=document.busqueda.buscar.value;
    
modulo_id=document.busqueda.modulo_id.value;
      
      var 
vacio = /^([a-z]|[A-Z]|[0-9/°s+-_]|á|é|í|ó|ú|ñ|ü|s|.|-)+$/   
         if(!
vacio.test(busqueda.buscar.value)) {
        
alert('Digite una busqueta.')   
        return 
false   
    
}
    
    
ajax=objetoAjax();
    
ajax.open("POST""consultas/motor.php",true);
    
ajax.onreadystatechange=function() {
       
               if (
ajax.readyState==4) {
            
divResultado.innerHTML ajax.responseText
                  LimpiarCampos_bus
();
        }
    }
    
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    
ajax.send("buscar="+buscar+"&modulo_id="+modulo_id)
}
function 
LimpiarCampos_bus(){
  
document.busqueda.buscar.value="";
  
document.busqueda.buscar.focus();
  } 
ok espero puedan ayudarme... necesito que en ese resultado de la busqueda siga funcionando el escrpt que me levanta el popup que ocupo.. gracias.
  #2 (permalink)  
Antiguo 23/12/2012, 07:56
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: class deja de funcionar tras busqueda usando ajax

Debes volver a realizar el proceso con los nuevos elementos, cuando insertes en el div resultado la respuesta de la petición, ejecuta algo como esto:
Código Javascript:
Ver original
  1. $("#resultado .facturas").colorbox({iframe:true, width:"90%", height:"75%"});
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 23/12/2012, 09:58
 
Fecha de Ingreso: noviembre-2008
Mensajes: 110
Antigüedad: 15 años, 5 meses
Puntos: 2
Respuesta: class deja de funcionar tras busqueda usando ajax

hola, gracias por responder... ese codigo ira por el k tenia entre head en la pagina index.php o donde?? pork ya probe y no funciona.. el link me carga en otra pagina llamado motor.php pero esa pagina se muestra dentro de un div en la misma pagina index.php donde esta declarada la class .... pero no funciona...alguna otra idea..?
  #4 (permalink)  
Antiguo 23/12/2012, 11:24
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: class deja de funcionar tras busqueda usando ajax

Como te indiqué en el mensaje anterior, ese código debes colocarlo luego de insertar el contenido obtenido usando Ajax en el documento.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 23/12/2012, 13:18
 
Fecha de Ingreso: noviembre-2008
Mensajes: 110
Antigüedad: 15 años, 5 meses
Puntos: 2
Respuesta: class deja de funcionar tras busqueda usando ajax

ok mi pregunta es..

si ese codigo ba..

Código PHP:
<head>
     <
link media="screen" rel="stylesheet" href="colorbox.css" />
    <
script src="js/jquery.min.js" type="text/javascript" charset="utf-8"></script>
    <script src="js/jquery.colorbox.js"></script>
    <script src="js/jquery.uniform.js" type="text/javascript" charset="utf-8"></script>
    <script>
        $(document).ready(function(){
//esta linea es la original
            $(".facturas").colorbox({iframe:true, width:"90%", height:"75%"});
//la cambio por la que tu sujieres aki o es en otro lado?
            $("#resultado .facturas").colorbox({iframe:true, width:"90%", height:"75%"});
        });
    </script>
    </head>
 
<div id='resultado'></div> 
porque el ajax me muestra el resultado en una pagina llamado motor.php
la cual no lleba head...

o la coloco asi en la pagina motor.php.. pero tampoco funciona..
Código PHP:
<?php header('Content-Type: text/html; charset=ISO-8859-1');
include(
"../configuracion.php");

echo
"
<script>
        $(document).ready(function(){
            $(\"#resultado .facturas\").colorbox({iframe:true, width:'90%', height:'75%'});
        });
</script>"
;

$modulo_id $_POST["modulo_id"];


if((
$modulo_id)=="1"){
include(
"../compras/buscar.php");
}elseif ((
$modulo_id)=="2"){
include(
"../clientes/buscar.php");    
}elseif ((
$modulo_id)=="3"){
include(
"../empleados/buscar.php");    
}elseif ((
$modulo_id)=="4"){
include(
"../servicios/buscar.php");    
}elseif ((
$modulo_id)=="5"){
include(
"../gastos/buscar.php");    
}elseif ((
$modulo_id)=="6"){
include(
"../proveedor/buscar.php");    
}elseif ((
$modulo_id)=="7"){
include(
"../compras/buscar_productos.php"); 
}elseif ((
$modulo_id)=="8"){
include(
"../usuarios/buscar.php");
}elseif ((
$modulo_id)=="9"){
include(
"../sucursales/buscar.php");
}elseif ((
$modulo_id)=="10"){
include(
"../webmaster.php");
}elseif ((
$modulo_id)=="11"){
include(
"../abonos_proveedor/buscar.php");
}elseif ((
$modulo_id)=="12"){
include(
"../abonos_clientes/buscar.php");
}elseif ((
$modulo_id)=="13"){
include(
"../abonos_empleados/buscar.php");
}elseif ((
$modulo_id)=="14"){
include(
"../abonos_gastos/buscar.php");
}
?>
alguna idea?
  #6 (permalink)  
Antiguo 23/12/2012, 15:44
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 9 meses
Puntos: 1567
Respuesta: class deja de funcionar tras busqueda usando ajax

Analizá este ejemplo

http://foros.emprear.com/jquerye/lightbox_en_ajax.html

El ejemplo page4 en particular
Para que lo verifiques le agregué un lightbox en page4.html
En esa misma página se carga con ajax ("load content", arriba) otro html que contiene otro lightbox, vas a ver que ambos se ejecutan. El problema es que aplicando la misma solución a colorbox, no funciona.
Para más información consultá
http://beski.wordpress.com/2010/11/0...ntent-problem/

La otra alternativa, que me parece más práctica, es que uses un iframe para cargar los resultados. Ahi puede presentarse el problema del alto del iframe, pero lo podés solucionar con esto
http://foros.emprear.com/javascript/autoajustar_iframe/

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.
  #7 (permalink)  
Antiguo 23/12/2012, 16:20
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: class deja de funcionar tras busqueda usando ajax

Aquí es donde recibes los datos:
Código Javascript:
Ver original
  1. ajax.onreadystatechange=function() {
  2.                if (ajax.readyState==4) {
  3.             divResultado.innerHTML = ajax.responseText
  4.                // Aquí ya existen los elementos, se puede llamara a colorbox()
  5.         }
  6.     }
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #8 (permalink)  
Antiguo 23/12/2012, 16:24
 
Fecha de Ingreso: noviembre-2008
Mensajes: 110
Antigüedad: 15 años, 5 meses
Puntos: 2
Respuesta: class deja de funcionar tras busqueda usando ajax

ola gracias por responder....cabal asi es como pretendo k funcione mi buscador y como vez se puede hacer el detalle es como hacerlo....tengo una seccion en iframe en mi sitio pero no me gusta el resultado es mas estetico con ajax..de hecho todo staba en iframe antes y lo estoy sustituyendo por ajax... voy a seguir viendo donde esta el detalle para ver k se puede hacer... gracias ojala encuentre como logran hacer eso.... pero si alguien mas tiene una idea bienvenido..
  #9 (permalink)  
Antiguo 23/12/2012, 16:30
 
Fecha de Ingreso: noviembre-2008
Mensajes: 110
Antigüedad: 15 años, 5 meses
Puntos: 2
Respuesta: class deja de funcionar tras busqueda usando ajax

wow gracias David sos un genio lo resolvio colocando la class debajo del resultado obtenido en ajax... asi.

ajax.onreadystatechange=function() {

if (ajax.readyState==4) {
divResultado.innerHTML = ajax.responseText
$("#resultado .facturas").colorbox({iframe:true, width:"90%", height:"75%"});
LimpiarCampos_bus();
}
}

y ya funciona gracias...... :D

Etiquetas: class, funcionar, usando, busquedas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:24.