Foros del Web » Programando para Internet » Javascript » Frameworks JS »

No me hace la función cuando debe.

Estas en el tema de No me hace la función cuando debe. en el foro de Frameworks JS en Foros del Web. Hola, tengo este código con un formulario que funciona bien pero nada mas recargar la pagina ya empieza a hacer la función filtrar (que es ...
  #1 (permalink)  
Antiguo 10/11/2012, 16:27
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 12 años, 2 meses
Puntos: 10
No me hace la función cuando debe.

Hola, tengo este código con un formulario que funciona bien pero nada mas recargar la pagina ya empieza a hacer la función filtrar (que es la que hace buscar los datos), luego una vez que a recargado y listado todos los datos, ya puedes meter datos en el formulario que funciona perfectamente.
Este es el botón:

Código PHP:
<button type="button" id="btnfiltrar" name="btnfiltrar" style="cursor:pointer;">
  <
img src="imagenes_menu/boton_buscar.jpg" width="100%"/>
</
button
Y este el js

Código Javascript:
Ver original
  1. // JavaScript Document
  2. var ordenar = '';
  3. $(document).ready(function(){
  4.    
  5.     // Llamando a la funcion de busqueda al
  6.     // cargar la pagina
  7.     filtrar()
  8.    
  9.     var dates = $( "#del, #al" ).datepicker({
  10.             yearRange: "-50",
  11.             defaultDate: "+1w",
  12.             changeMonth: true,
  13.             changeYear: true,
  14.             onSelect: function( selectedDate ) {
  15.                 var option = this.id == "del" ? "minDate" : "maxDate",
  16.                     instance = $( this ).data( "datepicker" ),
  17.                     date = $.datepicker.parseDate(
  18.                         instance.settings.dateFormat ||
  19.                         $.datepicker._defaults.dateFormat,
  20.                         selectedDate, instance.settings );
  21.                 dates.not( this ).datepicker( "option", option, date );
  22.             }
  23.     });
  24.     // ocultar div loading
  25.     $(".carga").hide();
  26.     // filtrar al darle click al boton
  27.     $("#btnfiltrar").click(function(){ filtrar() });
  28.    
  29.     // boton cancelar
  30.     $("#btncancel").click(function(){
  31.         $(".filtro input").val('')
  32.         $(".filtro select").find("option[value='0']").attr("selected",true)
  33.         filtrar()
  34.     });
  35.    
  36.     // ordenar por
  37.     $("#data th span").click(function(){
  38.         var orden = '';
  39.         if($(this).hasClass("desc"))
  40.         {
  41.             $("#data th span").removeClass("desc").removeClass("asc")
  42.             $(this).addClass("asc");
  43.             ordenar = "&orderby="+$(this).attr("title")+" asc"     
  44.         }else
  45.         {
  46.             $("#data th span").removeClass("desc").removeClass("asc")
  47.             $(this).addClass("desc");
  48.             ordenar = "&orderby="+$(this).attr("title")+" desc"
  49.         }
  50.         filtrar()
  51.     });
  52. });
  53.  
  54. var fila= null;
  55. function pulsar(obj, num_usuario) {
  56.   obj.style.background = 'grey';
  57.   if (fila != null && fila != obj)
  58.     fila.style.background = 'white';
  59.   fila = obj;
  60.  window.location ="menu3.php?id="+num_usuario;
  61. }
  62. var fila= null;
  63. function pulsar1(obj, num_aparato) {
  64.   obj.style.background = 'grey';
  65.   if (fila != null && fila != obj)
  66.     fila.style.background = 'white';
  67.   fila = obj;
  68.  window.location ="hist_apara.php?id="+num_aparato;
  69. }
  70. function filtrar()
  71.  
  72. {
  73.        
  74. * *     $.ajax({
  75. * * * * data: $("#frm_filtro").serialize()+ordenar,
  76. * * * * type: "POST",
  77. * * * * dataType: "json",
  78. * * * * url: "ajax.php?action=listar",
  79. * * * * beforeSend:function(){
  80.         $('.carga').css('display','block');
  81.         $('.carga').html("<img src='imagenes_menu/ajax-loader4.gif' align='center' /><br />Cargando...");
  82.         },
  83. * * * * success: function(data){
  84.         var html_user ='' ;
  85.         if(data.length > 0){
  86.         $.each(data, function(i,item){
  87.        
  88.        
  89.          
  90.  html_user += '<tr ondblclick="pulsar(this, ' +  String.fromCharCode(39) + item.num_usuario + String.fromCharCode(39)  + ');" >';
  91.  html_user += '<td ><input name="demo" type="radio" value="' + item.num_usuario + '"/></td>';
  92.  html_user += '<td id="row0" >'+item.num_usuario+'</td>';
  93.  html_user += '<td>'+item.telefono+'</td>';
  94.  html_user += '<td>'+item.nombre+' '+item.apellidos+'</td>';
  95.  html_user += '<td>'+item.poblacion+'</td>';
  96.  html_user += '</tr>';
  97.            
  98.                                  
  99.         });                    
  100.     }
  101.     if(html_user == '') html_user = '<tr><td colspan="4" align="center">No se encontraron registros..</td></tr>';
  102.     $("#data tbody").html(html_user);
  103.     $('.carga').html('');
  104. * *}
  105.  
  106.            
  107.       });
  108. }
  109.  
  110. function createAjax(){
  111.    if (window.XMLHttpRequest)
  112.    {
  113.       xmlhttp=new XMLHttpRequest();
  114.    }
  115.    else
  116.    {
  117.       xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  118.    }
  119. }
  120.  
  121. function buscarAparatos()
  122. {
  123.     var num_usuario = 0;
  124.     var elements = document.getElementsByName('demo');
  125.    
  126.     for(var x=0;elements[x];x++){
  127.         if(elements[x].checked){
  128.             num_usuario = elements[x].value;
  129.             break;
  130.         }
  131.     }
  132.    
  133.     createAjax();
  134.     xmlhttp.onreadystatechange=function()
  135.     {
  136.         if (xmlhttp.readyState==4 && xmlhttp.status==200)
  137.         {
  138.             document.getElementById("pestaña1").innerHTML=xmlhttp.responseText;
  139.         }
  140.     }
  141.    xmlhttp.open("GET","listado_aparatos.php?ID=" + num_usuario,true);
  142.    xmlhttp.send(null);
  143. }


Gracias y un saludo



EDITO: Aclaro que me hace esta función nada mas abrir la pagina: url: "ajax.php?action=listar",cuando debería de empezar al pulsar el botón.

Última edición por satjaen; 11/11/2012 a las 05:42
  #2 (permalink)  
Antiguo 12/11/2012, 06:06
Avatar de Maganius  
Fecha de Ingreso: septiembre-2010
Mensajes: 310
Antigüedad: 14 años, 2 meses
Puntos: 10
Respuesta: No me hace la función cuando debe.

Asi te deberia de funcionar solo al clickear en la imagen

Código HTML:
Ver original
  1. <img id="filtrobutton" src="imagenes_menu/boton_buscar.jpg"  style="cursor:pointer;"/>

Código Javascript:
Ver original
  1. // JavaScript Document
  2.     var ordenar = '';
  3.     $(document).ready(function(){
  4.        
  5.         // Llamando a la funcion de busqueda al
  6.         // cargar la pagina
  7.      $("img#filtrobutton").click(function(){
  8.         filtrar()
  9.       })
  10.        
  11.         var dates = $( "#del, #al" ).datepicker({
  12.                 yearRange: "-50",
  13.                 defaultDate: "+1w",
  14.                 changeMonth: true,
  15.                 changeYear: true,
  16.                 onSelect: function( selectedDate ) {
  17.                     var option = this.id == "del" ? "minDate" : "maxDate",
  18.                         instance = $( this ).data( "datepicker" ),
  19.                         date = $.datepicker.parseDate(
  20.                             instance.settings.dateFormat ||
  21.                             $.datepicker._defaults.dateFormat,
  22.                             selectedDate, instance.settings );
  23.                     dates.not( this ).datepicker( "option", option, date );
  24.                 }
  25.         });
  26.         // ocultar div loading
  27.         $(".carga").hide();
  28.         // filtrar al darle click al boton
  29.         $("#btnfiltrar").click(function(){ filtrar() });
  30.        
  31.         // boton cancelar
  32.         $("#btncancel").click(function(){
  33.             $(".filtro input").val('')
  34.             $(".filtro select").find("option[value='0']").attr("selected",true)
  35.             filtrar()
  36.         });
  37.        
  38.         // ordenar por
  39.         $("#data th span").click(function(){
  40.             var orden = '';
  41.             if($(this).hasClass("desc"))
  42.             {
  43.                 $("#data th span").removeClass("desc").removeClass("asc")
  44.                 $(this).addClass("asc");
  45.                 ordenar = "&orderby="+$(this).attr("title")+" asc"    
  46.             }else
  47.             {
  48.                 $("#data th span").removeClass("desc").removeClass("asc")
  49.                 $(this).addClass("desc");
  50.                 ordenar = "&orderby="+$(this).attr("title")+" desc"
  51.             }
  52.             filtrar()
  53.         });
  54.     });
  55.      
  56.     var fila= null;
  57.     function pulsar(obj, num_usuario) {
  58.       obj.style.background = 'grey';
  59.       if (fila != null && fila != obj)
  60.         fila.style.background = 'white';
  61.       fila = obj;
  62.      window.location ="menu3.php?id="+num_usuario;
  63.     }
  64.     var fila= null;
  65.     function pulsar1(obj, num_aparato) {
  66.       obj.style.background = 'grey';
  67.       if (fila != null && fila != obj)
  68.         fila.style.background = 'white';
  69.       fila = obj;
  70.      window.location ="hist_apara.php?id="+num_aparato;
  71.     }
  72.     function filtrar()
  73.      
  74.     {
  75.            
  76.     * *     $.ajax({
  77.     * * * * data: $("#frm_filtro").serialize()+ordenar,
  78.     * * * * type: "POST",
  79.     * * * * dataType: "json",
  80.     * * * * url: "ajax.php?action=listar",
  81.     * * * * beforeSend:function(){
  82.             $('.carga').css('display','block');
  83.             $('.carga').html("<img src='imagenes_menu/ajax-loader4.gif' align='center' /><br />Cargando...");
  84.             },
  85.     * * * * success: function(data){
  86.             var html_user ='' ;
  87.             if(data.length > 0){
  88.             $.each(data, function(i,item){
  89.            
  90.            
  91.              
  92.      html_user += '<tr ondblclick="pulsar(this, ' +  String.fromCharCode(39) + item.num_usuario + String.fromCharCode(39)  + ');" >';
  93.      html_user += '<td ><input name="demo" type="radio" value="' + item.num_usuario + '"/></td>';
  94.      html_user += '<td id="row0" >'+item.num_usuario+'</td>';
  95.      html_user += '<td>'+item.telefono+'</td>';
  96.      html_user += '<td>'+item.nombre+' '+item.apellidos+'</td>';
  97.      html_user += '<td>'+item.poblacion+'</td>';
  98.      html_user += '</tr>';
  99.                
  100.                                      
  101.             });                    
  102.         }
  103.         if(html_user == '') html_user = '<tr><td colspan="4" align="center">No se encontraron registros..</td></tr>';
  104.         $("#data tbody").html(html_user);
  105.         $('.carga').html('');
  106.     * *}
  107.      
  108.                
  109.           });
  110.     }
  111.      
  112.     function createAjax(){
  113.        if (window.XMLHttpRequest)
  114.        {
  115.           xmlhttp=new XMLHttpRequest();
  116.        }
  117.        else
  118.        {
  119.           xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  120.        }
  121.     }
  122.      
  123.     function buscarAparatos()
  124.     {
  125.         var num_usuario = 0;
  126.         var elements = document.getElementsByName('demo');
  127.        
  128.         for(var x=0;elements[x];x++){
  129.             if(elements[x].checked){
  130.                 num_usuario = elements[x].value;
  131.                 break;
  132.             }
  133.         }
  134.        
  135.         createAjax();
  136.         xmlhttp.onreadystatechange=function()
  137.         {
  138.             if (xmlhttp.readyState==4 && xmlhttp.status==200)
  139.             {
  140.                 document.getElementById("pestaña1").innerHTML=xmlhttp.responseText;
  141.             }
  142.         }
  143.        xmlhttp.open("GET","listado_aparatos.php?ID=" + num_usuario,true);
  144.        xmlhttp.send(null);
  145.     }
  #3 (permalink)  
Antiguo 12/11/2012, 07:10
Avatar de satjaen  
Fecha de Ingreso: septiembre-2012
Ubicación: Jaén (Andalucía)
Mensajes: 893
Antigüedad: 12 años, 2 meses
Puntos: 10
Respuesta: No me hace la función cuando debe.

Muchisimas gracias, me entendiste a la perfección.
Un saludo

Etiquetas: ajax, formulario, funcion, html, input, javascript, js, php, select
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 20:31.