Ver Mensaje Individual
  #3 (permalink)  
Antiguo 19/11/2014, 17:18
Avatar de totti026
totti026
 
Fecha de Ingreso: junio-2011
Mensajes: 150
Antigüedad: 13 años, 5 meses
Puntos: 4
Respuesta: llenar select con respuesta de json

Gracias rjulio21,

el campo colonia en la bd viene asi por ejemplo:
Código txt:
Ver original
  1. Ampliación El Capulin;El Capulín;Liberales de 1857;Belém de las Flores

tengo separadas las colonias porun punto y coma.

en mi php hice esto:
Código PHP:
Ver original
  1. <?php
  2.    
  3.     //$mysqli->set_charset("utf8");
  4.     $conexion = new mysqli('localhost','root','','cp',3306);
  5.     mysqli_set_charset($conexion, "utf8");
  6.     $cp = $_POST['cp'];
  7.     $consulta = "SELECT colonia, municipio, estado FROM codigospostales WHERE CodigoPostal = '$cp'";
  8.    
  9.     $result = $conexion->query($consulta);
  10.    
  11.     $respuesta = new stdClass();
  12.     if($result->num_rows > 0){
  13.  
  14.         while($fila = $result->fetch_array())
  15.         {          
  16.             $respuesta->colonia = $fila['colonia'];
  17.             $respuesta->municipio = $fila['municipio'];
  18.             $respuesta->estado = $fila['estado'];
  19.         }      
  20.        
  21.     }
  22.     echo json_encode($respuesta);
  23.  
  24. ?>

y en el script lo que sugeriste:
Código Javascript:
Ver original
  1. $("#cp").focusout(function(){
  2.                     $.ajax({
  3.                         url:'alumno.php',
  4.                         type:'POST',
  5.                         dataType:'json',
  6.                         data:{ cp: $('#cp').val() }
  7.                     }).done(function(respuesta){                        
  8.  
  9.                         $("#colonia").val(respuesta.colonia);
  10.                         $("#municipio").val(respuesta.municipio);
  11.                         $("#estado").val(respuesta.estado);
  12.                        
  13.                         var options = "";
  14.                         $.each(respuesta.colonia,function(key,value){
  15.                                   options+='<option value="key">value</option>';
  16.                          })
  17.  
  18.                          $("#colonias").html(options);
  19.                     });
  20.                 });

Solo que me arroja este error...
Código error:
Ver original
  1. Uncaught TypeError: Cannot use 'in' operator to search for '69' in Ampliación El Capulin;El Capulín;Liberales de 1857;Belém de las Flores

Muchas gracias por tu tiempo