Foros del Web » Programando para Internet » Jquery »

Ordenar select con json

Estas en el tema de Ordenar select con json en el foro de Jquery en Foros del Web. Hola a todos. Tengo el tipico select de paises, provincias y ciudades, donde se van activando de acuardo a la selección de los select padres... ...
  #1 (permalink)  
Antiguo 16/05/2019, 08:58
Avatar de laureano59  
Fecha de Ingreso: febrero-2005
Mensajes: 374
Antigüedad: 14 años, 8 meses
Puntos: 0
Pregunta Ordenar select con json

Hola a todos.

Tengo el tipico select de paises, provincias y ciudades, donde se van activando de acuardo a la selección de los select padres... bla,bla,bla....

El problema que tengo es que cuando cargo el select con las provincias que en mi caso lo llamo estados aparecen en el orden que se ingresaron a la base de datos, en la consulta SQL está ordenado por nombre y al imprimir print_r(json_encode($estado)); por pantalla se muestran ordenados como están en la cosulta, pero al cargar el select aparecen ordenados en el miso orden que se ingresaron a la base de datos...

Lo que necesito es que me salga ordenado como lo tengo en la consulta sql es decir por nombre.

Aquí pongo el codigo PHP donde llamo la consulta sql y la cargo en el JSON:

Código PHP:
require_once("core/models/class.Consultas.php");

$db = new Consultas();
$codigo_pais $_REQUEST['pais'];
$sql_estado $db->Sql_Estado($codigo_pais);
if(!empty(
$sql_estado)){
  
$estado = array();
   
$estado[0] = ['Estado - Provincia'];
    foreach(
$sql_estado as $row){
    
$estado[$row['id_estado']] = $row['nombre_est'];
  }
print_r(json_encode($estado));

y Aquí está el codigo html donde cargo el select con JSON:


Código Javascript:
Ver original
  1. <div class="selector-estado">
  2.                                                                 <select class="form-control" id="form-field-select-2"></select>
  3.                                                         <script type="text/javascript">
  4.                                                             $(document).ready(function() {
  5.                                                                 $(".selector-pais select").change(function() {
  6.                                                                     $(".selector-estado select").empty();
  7.                                                                     $.getJSON('?view=getestado&pais='+$(".selector-pais select").val(),function(data){
  8.                                                                         $.each(data, function(id,value){
  9.                                                                             $(".selector-estado select").append('<option value="'+id+'">'+value+'</option>');
  10.                                                                         });
  11.                                                                     });
  12.                                                                 });
  13.                                                             });
  14.                                                         </script>
  15.                                                     </div>


Muchas gracias por su ayuda.
__________________
http://www.weblaum.com
Laureano Melo Medina
:arriba:

Última edición por laureano59; 16/05/2019 a las 09:03 Razón: corregir
  #2 (permalink)  
Antiguo 20/05/2019, 21:34
Avatar de enlinea777  
Fecha de Ingreso: mayo-2008
Ubicación: frente al pc
Mensajes: 1.830
Antigüedad: 11 años, 4 meses
Puntos: 127
Respuesta: Ordenar select con json

$sql_estado = $db->Sql_Estado($codigo_pais);????
cual seria el sql de la consulta???.
Favor colocarlo, asi podria ayudarte mejor
  #3 (permalink)  
Antiguo 20/05/2019, 22:02
Avatar de laureano59  
Fecha de Ingreso: febrero-2005
Mensajes: 374
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Ordenar select con json

Este es el SQL :

Código PHP:
Ver original
  1. public function Sql_Estado($codigo_pais){
  2.         try{
  3.             $query = $this->con->prepare("SELECT * FROM estado WHERE codigo_pais = $codigo_pais  ORDER BY nombre_est ASC");
  4.             $query->execute();
  5.             $this->con->close_con();
  6.             return $query->fetchAll();
  7.         } catch(PDOException $e) {
  8.                     echo  $e->getMessage();
  9.             }
  10.     }
__________________
http://www.weblaum.com
Laureano Melo Medina
:arriba:



La zona horaria es GMT -6. Ahora son las 16:44.