Foros del Web » Programando para Internet » Javascript »

JS me desordena mi arreglo :-(

Estas en el tema de JS me desordena mi arreglo :-( en el foro de Javascript en Foros del Web. Hola amiguitos, estoy armando una lista select con JS y me funciona muy bien, sin embargo me pierde el orden y me muestra la lista ...
  #1 (permalink)  
Antiguo 12/06/2017, 10:59
Avatar de julia2021  
Fecha de Ingreso: diciembre-2014
Ubicación: Mexico
Mensajes: 152
Antigüedad: 9 años, 3 meses
Puntos: 11
Sonrisa JS me desordena mi arreglo :-(

Hola amiguitos, estoy armando una lista select con JS y me funciona muy bien, sin embargo me pierde el orden y me muestra la lista desordenada. Les muestro el código a ver si me pueden echar una mano

Primero construyo un arreglo llamado $_offices_and_cities que tiene la siguiente forma:
Código:
id_sucursal, id_cliente, nombre, id_ciudad, nombre_ciudad

2, 28, Los Dos Caminos, 149, Caracas
1, 28, Sede Principal, 149, Caracas
7, 9, Torre Hp, 149, Caracas
9, 28, Caripe Del Guacharo, 301, Caripe
8, 22, Casigua Del Cubo, 468, Casigua
11, 28, Ejido, 240, Ejido
5, 22, Agencia Paseo Del Lago, 487, Maracaibo
10, 28, Las Delicias, 64, Maracay
Ahora aplico mi JS
Código Javascript:
Ver original
  1. <? // INICIO: LISTAS DEPENDIENTES: CLIENTE >> SUCURSAL ///////////////////// ?>
  2. <SCRIPT LANGUAGE="JavaScript">
  3. var arrSucursales   = new Array();
  4. var arrSucursalesId = new Array();
  5.  
  6. <? // Armamos la lista desplegable de los SUCURSALES y las ciudades
  7.  
  8. foreach ($_offices_and_cities as $clave => $sucursal) {
  9.  
  10.     echo 'arrSucursales['.$sucursal['id_sucursal'].'] = "'.$sucursal['nombre_ciudad'].': '.$sucursal['nombre'].'"';echo "\n";
  11.     echo 'arrSucursalesId['.$sucursal['id_sucursal'].'] = '.$sucursal['id_cliente'];echo "\n";
  12. }
  13. ?>
  14. function selectChange(control, controlToPopulate2, ItemArray2, GroupArray2)
  15. {
  16.     // Armamos la lista de SUCURSALES
  17.     var myEle2 ;
  18.     var x2 ;
  19.     // Empty the second drop down box of any choices
  20.     for (var q2=controlToPopulate2.options.length;q2>=0;q2--) controlToPopulate2.options[q2]=null;
  21.     // ADD Default Choice - in case there are no values
  22.     myEle2 = document.createElement("option") ;
  23.     myEle2.value = 0 ;
  24.  
  25.     if (control.name == "id_cliente") {
  26.         myEle2.text = "Seleccione la oficina..." ;
  27.     }
  28.     controlToPopulate2.add(myEle2) ;
  29.     // Now loop through the array of individual items
  30.     // Any containing the same child id are added to
  31.     // the second dropdown box
  32.     for ( x2 = 0 ; x2 < ItemArray2.length  ; x2++ )
  33.     {
  34.         if ( GroupArray2[x2] == control.value )
  35.         {
  36.             myEle2 = document.createElement("option") ;
  37.             myEle2.value = x2 ;
  38.             myEle2.text = ItemArray2[x2] ;
  39.             controlToPopulate2.add(myEle2) ;
  40.         }
  41.     }
  42. }
  43. //  End -->
  44. </script>
  45.  
  46. <? // FINAL: LISTAS DEPENDIENTES: CLIENTE >> SUCURSAL ///////////////////// ?>
Sin embargo para el cliente 28 me muestra la lista con el siguiente orden:
Código:
- Caracas: Sede principal (1)
- Caracas: Los Dos Caminos (2)
- Caripe: Caripe del Guacharo (9)
- Maracay: Las Delicias (10)
- Elijo: Elijo (11)
Cómo puedo hacer para ordenarlo por nombre_ciudad y no por id_sucursal ???
  #2 (permalink)  
Antiguo 13/06/2017, 15:05
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 244
Antigüedad: 17 años, 8 meses
Puntos: 32
Respuesta: JS me desordena mi arreglo :-(

Hola,

¿puedes pasar el código que devuelve el navegador una vez procesado por PHP? No tengo ni idea de PHP y me seria más facil leer el código puramente en javascript sin tener que recordar si el orden de recorrido de un array en PHP está garantizado y esas cosas.

Gracias!
__________________
github.com/xgbuils | npm/xgbuils
  #3 (permalink)  
Antiguo 17/06/2017, 10:51
Avatar de manuparquegiralda  
Fecha de Ingreso: junio-2012
Ubicación: Barcelona
Mensajes: 241
Antigüedad: 11 años, 9 meses
Puntos: 39
Respuesta: JS me desordena mi arreglo :-(

Podrías hacer los siguiente: pasar el array a json en PHP, asignarlo a la variable en javascript y acto seguido decodificar el json en javascript.

A mi no me gusta demasiado mezclar el javascript con el PHP de la manera que lo haces. Pero bueno, te pongo un ejemplo de lo que haría yo siguiendo tu método.

Código PHP:
<?php

$office_cities_json 
json_encode$_offices_and_cities );

?>

<script>
var office_cities_json = '<?php echo $office_cities_json?>';
var _offices_and_cities = JSON.parse( office_cities_json );
</script>
De este modo tendrías una array en javascript exactamente igual que lo tendrías en PHP. Es posible que puedas tener algún conflicto con las comillas simples. Échale un vistazo a la documentación si se da el caso. http://php.net/manual/es/function.json-encode.php

A partir de aquí tan solo tendrías que tratar el array en javascript.
__________________
Diseño Web - Arisman Web

Etiquetas: Ninguno
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:17.