Resulta que estoy queriendo crear un efecto parecido al que tiene Access, con sus listas(select).
Lo que he hecho hasta ahorita es que tengo las siguientes funciones:
Código:
Y aqui tengo el formulario y la listavar url = "detalles.php?opcion=lista_config_ventas&tipo="; function handleHttpResponse() { if (http.readyState == 4) { if(http.status==200) { var results=http.responseText.split("-"); var selObj = document.getElementById("clasificacion"); for (var count = 0; count < results.length; count++) { textValue = (results[count]); optionItem = new Option( textValue, textValue); selObj.options[count] = optionItem; } } } } function requestClasifica(ID,valor) { var sId = ID; http.open("GET", url + escape(sId) + "&valor=" + valor , true); http.onreadystatechange = handleHttpResponse; http.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=utf-8') http.send(null); } function procesar_form(form,esconder) { var valor = form.another_clasi.value; var tipo = form.tipo.value; requestClasifica(tipo,valor); HideContent(esconder); } function HideContent(d) { if(d.length < 1) { return; } document.getElementById(d).style.visibility='hidden'; }
Código:
Esta funcion va a insertar un elemento y actualiza la lista, hasta ahi todo bien, el problema es cuando quiero borrar un elemento, lo que he hecho es crear una opcion en un archivo y ahi mandar a borrar. El elemento lo borra bien, pero al mandar a llamar la funcion para que me recargue los valores, me duplica el ultimo valor<div id="clas" style="posiction:absolute;visibility:visible"> <select id="clasificacion" name="clasi" size="1" class="lista"> </select> <a href="javascript:add('lista_clasi','another_clasi');"><img src="img/add.gif" border="0"></a><a href="javascript:borrar_elemento('clasificacion','cclasificacion_eng')"><img src="img/delete.gif" border="0"></a> </div> <div id="lista_clasi" style="position:absolute;visibility:hidden"> <form name="f1" method="GET"> <input type="hidden" name="tipo" value="cclasificacion_eng"> <input type="text" id="another_clasi" name="another_clasi" size="25" class="datos"> <input type="button" value="Agregar" onClick="procesar_form(this.form,'lista_clasi')" name="boton" class="boton"> <input type="button" value="Cancelar" onclick="HideContent('lista_clasi')" class="boton"> </form> </div>
Código:
No he podido lograr averiguar porque me carga doble el ultimo valor de la lista, si alguien tiene algo mas sencillo y me puede ayudar les agradeceria mucho.function borrar_elemento(id,tipo) { var selObj = document.getElementById(id); var selIndex = selObj.selectedIndex; http3.open("GET", "detalles.php?opcion=borrar&nombre=" + selObj.options[selIndex].value, true); http3.onreadystatechange = cargar1; http3.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=utf-8') http3.send(null); } function cargar1() { if (http3.readyState == 4) { if(http3.status==200) { requestClasifica('cclasificacion_eng','vacio'); } } }
Saludos,
Jorge.