Comunidad de diseño web y desarrollo en internet online

Mostrar municipios condicionandos por los estados AJAX

Citar            
MensajeEscrito el 12 Jun 2012 11:06 pm
Buen día.
Tenemos una una tabla de los estados de la república mexicana y otra tabla con los municipios de cada los estados, el problema que tenemos es que al seleccionar un estado de la república no se muestran sus respectivos municipios.

Este es el código para seleccionar el estado y su ID:


Código HTML :

<tr>
      <td align="center">Estado:</td> 
      <td align="center">
         <select name="estado" id="estado" onblur="selectestado(); return false;">
         <?PHP
            $query_estado   =   $objCliente->mostrar_estados();
            
            while($rowES   =   mysql_fetch_array($query_estado))
            {
               echo '<option value="'.$rowES[idestado].'">'.$rowES[estado].'</option>';
            }
         ?>
         </select>
      </td>
   </tr>


Con el siguiente código se manda llamar el archivo municipios.php para obtener los nombres de los municipios.

Código Javascript :

   function selectestado()
   {
      slct      =   $("option[#estado='estado']:selected").val();
      
      $.ajax({
         url: 'municipios.php',
         type: "GET",
         data: "idedo="+slct,
         success: function(response){
            $("#municipio").html(response);
         }
      });
      return false;
   }


Con éste código se obtiene los resultados de los municipios que son el ID y nombre del municipio:

Código PHP :

<?PHP
   require_once 'inc/config.php';
   
   $objCliente      =   new buscandocasa;
   
   $idedo   =   $_GET['idedo'];

   $query_estado   =   $objCliente->mostrar_municipios($idedo);
   
   while($rowMUN   =   mysql_fetch_array($query_estado))
   {
      echo '<option value="'.$rowMUN[idmpio].'">'.$rowMUN[municipio].'</option>';
   }
?>


Y el resultado anterior se imprime o muestra aqui:

Código HTML :

   <tr>
      <td align="center">Municipio:</td>
      <td align="center">   
         <select name="municipio" id="municipio">
         </select>
      </td>
   </tr>


Pero no lo hace, únicamente muestra los estados y permite seleccionar uno de ellos pero los municipios no los carga ni los muestra, ¿alguna sugerencia?

Por M3T4LX

13 de clabLevel



 

firefox
Citar            
MensajeEscrito el 13 Jun 2012 05:22 pm
Tal vez esto te pueda ayudar:

http://driverop.com.ar/php_html/depselect2

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 16 Jun 2012 03:52 am
muchas gracias la pagina me sirvio bastante ahora tengo el siguiente problema...

estoy manejando estados, municipios y colonias por lo tanto solo el script me ayudo con estados y municipios, ahora quiero agregarle colonias, pero al parecer no me toma el ultimo evento...

alguna idea.....

Código HTML :

<?PHP
   require_once 'inc/config.php';
   
   $objCliente      =   new buscandocasa;
   
   if ($login->logged())
   {
      $Nbasico      =   $login->getdata(basico);
      $Ndestacado      =   $login->getdata(destacado);
      
?>
<script type="text/javascript">
$(document).ready(
   function () 
   {
      
      $("#sel2").load("makeselect2.php?estado="+$("#selector1").val());
      $("#selector1").change(
         function () 
         {
            $("#sel2").load("makeselect2.php?estado="+$("#selector1").val());
         }
      );

      $("#sel3").load("makeselect2.php?estado="+$("#selector1").val()+"&municipio="+$("option[@name='municipio']:selected").val());
      $("#selector2").val().change(
         function () 
         {
            $("#sel3").load("makeselect2.php?estado="+$("#selector1").val()+"&municipio="+$("option[@name='municipio']:selected").val());
         }
      );
   }
);
</script>
<h4 class="heading colr">Panel - Administrar inmuebles</h4>
<p>
   Panel de administracion.
   <br />
   Edite, agrege  y/o elimine los inmuebles sencillamente.
</p>

<form method="post" id="equipo" action="">

<table width="100%" border="0">
   <!--<tr>
      <td align="center">Tipo de cuenta:</td>
      <td align="center">
         <select name="tanuncio">
            <option value="gratis">Gratis</option>
            <?PHP
               if($Nbasico >= 1)
               {
                  echo '<option value="basico">B&aacute;sico ('.$Nbasico.')</option>';
               }
               
               if($Ndestacado >= 1)
               {
                  echo '<option value="destacado">Destacado ('.$Ndestacado.')</option>';
               }
            ?>
         </select>
      </td>
   </tr>-->
   <tr>
      <td align="center">Estado:</td> <!-- -->
      <td align="center">
         <select id="selector1" name="pais">
         <?php
            mysql_query("SET NAMES UTF8",$con);
            
            $sql = "SELECT * FROM `estados` ORDER BY `estado`";
            
            $result = mysql_query($sql,$con);
   
            while ($fila = mysql_fetch_assoc($result)) {
               echo sprintf('<option value="%s">%s</option>',$fila['idestado'],$fila['estado']);
            }
         ?>
         </select>
      </td>
   </tr>   
   <tr>
      <td align="center">Municipio:</td> <!-- -->
      <td align="center">   
         <span id="sel2"></span>
      </td>
   </tr>   
   <tr>
      <td align="center">Colonia:</td> <!-- -->
      <td align="center">   
         <span id="sel3"></span>
      </td>
   </tr>

</table>



<div class="clear"></div>
<button name="submit" type="submit" class="buttonthree"><span>Registrar</span></button>
<div class="clear"></div>
</form>
   <?PHP
   }
?>



es aqui donde tengo el problema... no marca el evento...

Código Javascript :

$("#sel3").load("makeselect2.php?estado="+$("#selector1").val()+"&municipio="+$("option[@name='municipio']:selected").val());
      $("#selector2").val().change(
         function () 
         {
            $("#sel3").load("makeselect2.php?estado="+$("#selector1").val()+"&municipio="+$("option[@name='municipio']:selected").val());
         }
      );


y este es el archivo que se llama con el "load"

Código PHP :

<?php
   require_once 'inc/config.php';
   
   $idestado       =   $_GET['estado'];
   $idmunicipio   =   $_GET['municipio'];
   
   
   if($idestado <> NULL && $idmunicipio == NULL)
   {
      mysql_query("SET NAMES UTF8",$con);
      
      $sql = "SELECT * FROM `municipios` WHERE `idedo` = ".mysql_real_escape_string($idestado)." ORDER BY `municipio`";
      
      $result = mysql_query($sql,$con);
      
      echo '<select id="selector2" name="municipio">';
      while ($fila = mysql_fetch_array($result)) {
         echo '<option value="'.$fila['id'].'">'.$fila['municipio'].'</option>';
      }
      echo '</select>';
   }
   
   if($idestado <> NULL && $idmunicipio <> NULL)
   {
      mysql_query("SET NAMES UTF8",$con);
      
      $sql2 = "SELECT * FROM `colonias` WHERE `idedo` = ".$idestado." AND `idmpio` = ".$idmunicipio." ORDER BY `colonia`;";
      //echo $sql2;
      $result2 = mysql_query($sql2,$con);
      
      echo '<select id="selector3" name="colonia">';
      while ($fila2 = mysql_fetch_array($result2)) {
         echo sprintf('<option value="%s">%s</option>',$fila2['id'],$fila2['colonia']);
      }
      echo '</select>';
   }

   mysql_close($con);
?>



Saludos y gracias.

Por M3T4LX

13 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.