Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Armar array con resultado de json

Estas en el tema de Armar array con resultado de json en el foro de Frameworks JS en Foros del Web. Hola chicos, estoy tratando de armar un codigo que genera una lista para buscar. La lista " un <select></select>" se arma basada en dos array(). ...
  #1 (permalink)  
Antiguo 10/11/2011, 08:07
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Armar array con resultado de json

Hola chicos, estoy tratando de armar un codigo que genera una lista para buscar.
La lista " un <select></select>" se arma basada en dos array().

En base sin ajax jquery y php, el array funciona de esta manera:

Código Javascript:
Ver original
  1. lista = new Array('Seleccione un Producto','produc1','produc2','produc3');
  2. lista2 = new Array('','1','2','3');

Y con Json recibo esto:

response.descripcion

response.alias

que contienen esto

response.descripcion = "'a','b','c','d','e'";
response.alias = "'1','2','3','4','5'";

Lo que intente hacer fue lo siguiente:

Código Javascript:
Ver original
  1. lista = new Array(response.descripcion);
  2. lista2 = new Array(response.alias);

Y al fina se interpreta tanto response.descripcion como response.alias, como una sola variable y no como varias variable dentro del array, espero que se entienda.
__________________
Mono programando!
twitter.com/eguimariano
  #2 (permalink)  
Antiguo 10/11/2011, 14:33
Avatar de livemusic  
Fecha de Ingreso: abril-2011
Ubicación: Lima - Chorrillos
Mensajes: 150
Antigüedad: 13 años
Puntos: 18
Respuesta: Armar array con resultado de json

Suerte espero y te funcione ...

LiveMusic.html
Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>Documento sin título</title>
  5. <script src="http://www.google.com/jsapi"></script>  
  6. <script type="text/javascript">
  7.     google.load("jquery", "1.6.4");
  8. $(function(){
  9.     $.getJSON('valores.php',function(data){
  10.         var html = "<option value='' selected='selected'>LiveMusic && LiveCarito</option>";
  11.         for(var i = 0; i < data.length; i++){
  12.             html += "<option value='"+ (i+1) +"'>"+ data[i].live +"</option>";
  13.         }
  14.         $("#LiveMusic").append($(html));
  15.     })
  16. })
  17. </head>
  18.  
  19. <select id="LiveMusic">
  20.    
  21. </body>
  22. </html>




valores.php
Código PHP:
Ver original
  1. <?php
  2.     $powerCarito = array();
  3.     for($x=0; $x<=4; $x++){
  4.         $powerCarito[] = array("live" => "carito".($x+1));
  5.     }
  6.     echo json_encode($powerCarito);
  7. ?>


  #3 (permalink)  
Antiguo 10/11/2011, 17:27
Avatar de SirDuque  
Fecha de Ingreso: febrero-2009
Ubicación: Paso del Rey, Buenos Aires, Argentina
Mensajes: 975
Antigüedad: 15 años, 2 meses
Puntos: 89
Respuesta: Armar array con resultado de json

Cita:
Iniciado por livemusic Ver Mensaje
Suerte espero y te funcione ...

........

Gracias por el aporte, pero el codigo es mas complejo, ya que la lista se va regenerando segun el campo texto, y esta en un POPUP, cuando seleccionas una opcion, devuelve el valor en la pagina madre del campo solicitado.

Parcialmente lo solucione con:

Código Javascript:
Ver original
  1. lista2 = response.alias.split(',');
  2. lista = response.descripcion.split(',');

Parcialmente, por que si nicio la busqueda con la letra "P" me salta un error copio Codigo:

Código Javascript:
Ver original
  1. <script>
  2. lista = new Array('Seleccione un Producto');
  3. lista2 = new Array('');
  4. armarLista('');
  5. function armarLista(texto)
  6. {
  7.     if (texto != '')
  8.     {
  9.         $.post('./articulo_popup.php', {articulo: texto}, function (data) {
  10.     //            var record = response.data;
  11.                 lista2 = data.alias.split(',');
  12.                 lista = data.descripcion.split(',');
  13.         }, 'json');
  14.     }
  15. }    
  16.  
  17.  function cargarLista() {
  18.   // Cargamos el combo
  19.   for (x=0;x<lista.length;x++)
  20.     document.formulario.miCombo[x] = new Option(lista[x],lista2[x]);
  21.  }
  22.  
  23.  function buscar() {
  24.    cargarLista();
  25.  
  26.    limpiarLista();
  27.    
  28.    // Obtengo el valor del texto
  29.    texto = document.getElementById("busca").value;
  30.    // Creo la expresión regular
  31.    expr = new RegExp("^" + texto,"i");
  32.    armarLista(texto);
  33.    // Recorro la lista. Si la expresión regular es OK
  34.    y = 0;
  35.    
  36.    for (x=0;x<lista.length;x++) {
  37.      if (expr.test(lista[x])) {
  38.       document.formulario.miCombo[y] = new Option(lista[x],lista2[x])
  39.        y++;
  40.      }
  41.    }
  42.  }
  43.    
  44.  function limpiarLista() {
  45.    for (x=document.formulario.miCombo.length;x>=0;x--)
  46.      document.formulario.miCombo[x] = null;
  47.  }
  48.    
  49. </script>

Solo si inicio con la letra "P" me tira error en la linea de
"lista = data.descripcion.split(',');"
diciendo descripcion es nulo o no es un objeto.

Alguien tiene alguna idea por que ese error? cuando ya pongo "plan" funciona todo correctamente, el error me lo tira una sola vez.
__________________
Mono programando!
twitter.com/eguimariano

Etiquetas: ajax, armar, funcion, jquery, js, json, php, resultados
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 12:23.