Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/09/2013, 15:47
chubse
 
Fecha de Ingreso: marzo-2012
Mensajes: 84
Antigüedad: 12 años, 1 mes
Puntos: 3
Problema con el submit desde un select (oncheange) PHP

Que tal amigos del foro, antes que nada les agradezco su gran ayuda y tiempo. Tengo un problema, estoy desarrollando un sistema en Ajax y JQuery para que al hacer submit en un form no me recargue toda la página, ya he logrado hacer que funcione al crear un input:

Código HTML:
Ver original
  1. <input name="Enviar" type="submit" value="Consultar"/>

Sin embargo cuando pongo un atributo onchange en un select multiple me carga la página y me redirige a la hoja de php:

Código HTML:
Ver original
  1. <select name="view[]" id="view" multiple="multiple" style="height:400px;width:400px;" onchange="this.form.submit();">

¿Espero me puedan ayudar?

Gracias
Saludos

index.php
Código HTML:
Ver original
  1. <form name="estados" id="estados" action="filtro_edo_login.php" method="POST" onsubmit="selectAllOptions('select_2');">
  2.  
  3.                         Elementos 109 de 109<br />
  4.                         <select name="view[]" id="view" multiple="multiple" style="height:400px;width:400px;" onchange="this.form.submit();">
  5.                        
  6.                         <?php
  7.            
  8.                             $consult_edo="SELECT id_estado, estado_dsc FROM cat_estado";
  9.                            
  10.                             $result_edo=mysql_query ($consult_edo,$conexion);  
  11.                                                                    
  12.                                 while ($fila=mysql_fetch_array($result_edo)){  
  13.                                
  14.                                         echo '<option value="'.$fila["id_estado"].'"';
  15.                                                 if($_POST["view"]==$fila["id_estado"]) echo " selected";
  16.                                         echo '>'.$fila["estado_dsc"].'</option>';  
  17.                         }
  18.                            
  19.                                    
  20.                         ?>
  21.                         </select>
  22.  
  23.         </form>
  24.  
  25. <div id="ajax_loader"><img id="loader_gif" src="loader.gif" style=" display:none;"/><div>

js
Código Javascript:
Ver original
  1. <script>
  2.  
  3. function selectAllOptions(selStr)
  4. {
  5. var selObj = document.getElementById(selStr);
  6. for (var i=0; i<selObj.options.length; i++) {
  7. selObj.options[i].selected = true;
  8. }
  9.  
  10. }
  11.  
  12. // esperamos que el DOM cargue
  13.         $(document).ready(function() {
  14.             // definimos las opciones del plugin AJAX FORM
  15.             var opciones= {
  16.                                beforeSubmit: mostrarLoader, //funcion que se ejecuta antes de enviar el form
  17.                                success: mostrarRespuesta, //funcion que se ejecuta una vez enviado el formulario
  18.                                
  19.             };
  20.              //asignamos el plugin ajaxForm al formulario y le pasamos las opciones
  21.             $('#estados').ajaxForm(opciones) ;
  22.            
  23.              //lugar donde defino las funciones que utilizo dentro de "opciones"
  24.              function mostrarLoader(){
  25.                       $("#loader_gif").fadeIn("slow");
  26.              };
  27.              function mostrarRespuesta (responseText){
  28.                            //alert("Mensaje enviado: "+responseText);
  29.                           $("#loader_gif").fadeOut("slow");
  30.                           $("#ajax_loader").append(responseText);
  31.                          
  32.                           //$("#ajax_loader").after(responseText).remove();
  33.                           $("#ajax_loader").replaceWith(responseText);
  34.              };
  35.    
  36.         });
  37.        
  38.  
  39. </script>

filtro_edo_login.php
Código PHP:
<?php

include("conexion_mysql.php");

if(isset(
$_POST["view"])){

$edo=$_POST["view"];

$implode=implode("','",$edo);

$consult_tax="SELECT dat_matriz.id_matriz, cat_taxa.taxon FROM dat_matriz INNER JOIN cat_taxa ON cat_taxa.id_tax=dat_matriz.id_tax WHERE dat_matriz.id_estado IN('".$implode."') GROUP BY cat_taxa.taxon ORDER BY cat_taxa.taxon ASC";
$result_tax=mysql_query ($consult_tax,$conexion);
$num_tax=mysql_num_rows($result_tax);

?>

    <div id="ajax_loader"><img id="loader_gif" src="loader.gif" style=" display:none;"/>
    
                        Elementos <?php echo $num_tax?> de 244<br />
                        <select name="view2[]" multiple="multiple" style="height:400px;width:400px;">
                        <?php
            
                            $consult_tax
="SELECT dat_matriz.id_matriz, cat_taxa.taxon FROM dat_matriz INNER JOIN cat_taxa ON cat_taxa.id_tax=dat_matriz.id_tax WHERE dat_matriz.id_estado IN('".$implode."') GROUP BY cat_taxa.taxon ORDER BY cat_taxa.taxon ASC";
                        
                            
$result_tax=mysql_query ($consult_tax,$conexion);    
                            
                                while (
$fila=mysql_fetch_row($result_tax)){  
                                
                                          echo 
'<option value="'.$fila[0].'"';
                                                  if(
$_POST["view2"]==$fila[0]) echo " selected"
                                         echo 
'>'.$fila[1].'</option>';   
                        }
                            
                        
                                    
                        
?>
                        </select></div>

<?php

}else{
    
    echo 
"No ha seleccionado ningún elemento de la lista.";    
    
}

?>