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> <select name=capitulos onchange=cambia_capitulos()> <option value="-">- </select> </form>
este es el codigo jquery:
Código Javascript:
Ver original
var 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.