Ver Mensaje Individual
  #1 (permalink)  
Antiguo 21/08/2014, 10:12
job2
 
Fecha de Ingreso: agosto-2014
Mensajes: 2
Antigüedad: 10 años, 5 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.