Foros del Web » Programación para mayores de 30 ;) » Java »

Como preparar un json para este combomenu

Estas en el tema de Como preparar un json para este combomenu en el foro de Java en Foros del Web. Saludos Soy nuevo en el forum y necesito ayuda con un select menu. La cuestion es que necesito preparar un archivo json, para cargar el ...
  #1 (permalink)  
Antiguo 21/08/2014, 10:12
 
Fecha de Ingreso: agosto-2014
Mensajes: 2
Antigüedad: 9 años, 8 meses
Puntos: 0
Pregunta Como preparar un json para este combomenu

Saludos
Soy nuevo en el forum y necesito ayuda con un select menu.

La cuestion es que necesito preparar un archivo json, para cargar el contenido espesificando a cada item selecionado:

Ejemplo: si selecciono la opcion capitulo de un libro, extraer la informacion
desde un archivo json y motrarlo en un div.

codigo html:
Código HTML:
Ver original
  1. <form id="menu" name=menu>
  2.                 <select name=libros onchange=cambia_libros()>
  3.                     <option value="0" selected>Seleccione...
  4.                     <option value="1">G&eacute;nesis
  5.                     <option value="2">&Eacute;xodo
  6.                     <option value="3">Lev&iacute;tico
  7.                     <option value="4">N&uacute;meros
  8.                 </select>
  9.  
  10.                 <select name=capitulos onchange=cambia_capitulos()>
  11.                     <option value="-">-
  12.                 </select>
  13.             </form>
  14.  
  15. <div id="conteiner"></div>

este es el codigo jquery:

Código Javascript:
Ver original
  1. var capitulos_1=new Array("-","Item1","Item2","Item3","Item4","...")
  2. var capitulos_2=new Array("-","Item1","Item2","Item3","Item4","...")
  3. var capitulos_3=new Array("-","Item1","Item2","Item3","Item4","...")
  4. var capitulos_4=new Array("-","Item1","Item2","Item3","Item4","...")
  5.  
  6. //función que cambia las provincias del select de provincias en función del país que se haya escogido en el select de país.
  7. function cambia_libros(){
  8.     //tomo el valor del select del libro elegido
  9.     var libros
  10.     libros = document.menu.libros[document.menu.libros.selectedIndex].value
  11.     //miro a ver si el libro está definido
  12.     if (libros != 0) {
  13.         //si estaba definido, entonces coloco las opciones de los capitulos correspondiente.
  14.         //selecciono el array de capitulos adecuado
  15.         capitulos=eval("capitulos_" + libros)
  16.         //calculo el numero de capitulos
  17.         num_capitulos = capitulos.length
  18.         //marco el número de capitulos en el select
  19.         document.menu.capitulos.length = num_capitulos
  20.         //para cada capitulos del array, la introduzco en el select
  21.         for(i=0;i<num_capitulos;i++){
  22.            document.menu.capitulos.options[i].value=capitulos[i]
  23.            document.menu.capitulos.options[i].text=capitulos[i]
  24.         }    
  25.     }else{
  26.         //si no había capitulos seleccionado, elimino los capitulos del select
  27.         document.menu.capitulos.length = 1
  28.         //coloco un guión en la única opción que he dejado
  29.         document.menu.capitulos.options[0].value = "-"
  30.         document.menu.capitulos.options[0].text = "-"
  31.     }
  32.     //marco como seleccionada la opción primera de capitulos
  33.     document.menu.capitulos.options[0].selected = true
  34. }
  35.  
  36. function cambia_capitulos() {
  37.     var selectedCapitulo = document.menu.capitulos[document.menu.capitulos.selectedIndex].value
  38.     var xhr = getXhr()
  39.     if (!xhr) {
  40.         return
  41.     }
  42.    
  43.     xhr.onreadystatechange = function() {
  44.         if (xhr.readyState == 4 && xhr.status == 200) {
  45.             var data = xhr.responseText
  46.             var parsedData = JSON.parse(data)
  47.             var capitulosTexts = parsedData.capitulos
  48.             var conteiner = document.getElementById("conteiner")
  49.             conteiner.innerHTML = ""
  50.             for (var capitulo in capitulosTexts) {
  51.                 if (capitulo == selectedCapitulo) {
  52.                     conteiner.innerHTML = capitulosTexts[capitulo]
  53.                     break
  54.                 }
  55.             }
  56.         }
  57.     }
  58.    
  59.     var url = "your/url/to/json/file"
  60.     xhr.open("POST", url, true)
  61.     xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
  62.     xhr.send()
  63. }

Es pero y me puedan ayuda de antemano gracias.
  #2 (permalink)  
Antiguo 22/08/2014, 04:41
Avatar de rgf1987  
Fecha de Ingreso: diciembre-2012
Ubicación: Asturias
Mensajes: 269
Antigüedad: 11 años, 4 meses
Puntos: 22
Respuesta: Como preparar un json para este combomenu

hola,

los archivos Json representan documentos y puedes formarlos de muchas formas distintas, sin saber que datos exactos necesitas para tu aplicación es muy dificil que te podamos dar un ejemplo, pero para que entiendas como es la estructura, un documento que representa libros podría ser por ejemplo así:


Código JSON:
Ver original
  1. {
  2. libros:{
  3.               {
  4.                           idLibro:"1",
  5.                           titulo:"Titulo del libro",
  6.                           autores:[" ", " ", " ", " " ],
  7.                           editorial:"laquesea",
  8.                           año:2003,
  9.                           precio:25
  10.                }
  11.                {
  12.                           idLibro:"2",
  13.                           titulo:"El titulo",
  14.                           autores:[" ", " ", " ", " " ],
  15.                           editorial:"unamala",
  16.                           año:2007,
  17.                          precio:10
  18.                }
  19.        }
  20. }

Como puedes ver se divide en documentos, en este caso dos libros distintos y cada documento tiene un conjunto de claves-valor, donde el valor puede ser cualquier tipo de dato, un array o incluso otro documento distinto.

Un saludo.

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 01:19.