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<form id="menu" name=menu> <select name=libros onchange=cambia_libros()> <option value="0" selected>Seleccione...
<option value="1">G
énesis
<option value="2">Éxodo
<option value="3">Lev
ítico
<option value="4">N
úmeros
<select name=capitulos onchange=cambia_capitulos()>
este es el codigo jquery:
Código Javascript
:
Ver originalvar capitulos_1=new Array("-","Item1","Item2","Item3","Item4","...")
var capitulos_2=new Array("-","Item1","Item2","Item3","Item4","...")
var capitulos_3=new Array("-","Item1","Item2","Item3","Item4","...")
var capitulos_4=new Array("-","Item1","Item2","Item3","Item4","...")
//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.
function cambia_libros(){
//tomo el valor del select del libro elegido
var libros
libros = document.menu.libros[document.menu.libros.selectedIndex].value
//miro a ver si el libro está definido
if (libros != 0) {
//si estaba definido, entonces coloco las opciones de los capitulos correspondiente.
//selecciono el array de capitulos adecuado
capitulos=eval("capitulos_" + libros)
//calculo el numero de capitulos
num_capitulos = capitulos.length
//marco el número de capitulos en el select
document.menu.capitulos.length = num_capitulos
//para cada capitulos del array, la introduzco en el select
for(i=0;i<num_capitulos;i++){
document.menu.capitulos.options[i].value=capitulos[i]
document.menu.capitulos.options[i].text=capitulos[i]
}
}else{
//si no había capitulos seleccionado, elimino los capitulos del select
document.menu.capitulos.length = 1
//coloco un guión en la única opción que he dejado
document.menu.capitulos.options[0].value = "-"
document.menu.capitulos.options[0].text = "-"
}
//marco como seleccionada la opción primera de capitulos
document.menu.capitulos.options[0].selected = true
}
function cambia_capitulos() {
var selectedCapitulo = document.menu.capitulos[document.menu.capitulos.selectedIndex].value
var xhr = getXhr()
if (!xhr) {
return
}
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
var data = xhr.responseText
var parsedData = JSON.parse(data)
var capitulosTexts = parsedData.capitulos
var conteiner = document.getElementById("conteiner")
conteiner.innerHTML = ""
for (var capitulo in capitulosTexts) {
if (capitulo == selectedCapitulo) {
conteiner.innerHTML = capitulosTexts[capitulo]
break
}
}
}
}
var url = "your/url/to/json/file"
xhr.open("POST", url, true)
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
xhr.send()
}
Es pero y me puedan ayuda de antemano gracias.