Hola Yurk, el problema que tienes es que se te van acumulando los datos en el combo de las subcategorias, ¿verdad? Si te entendí bien, lo que tenés que hacer antes de cargar la respuesta que obtuviste del servidor (mediante AJAX) es eliminar los elementos que tenes en el combo. Javascript no tiene una funcion para eliminar todos los elementos de una (por lo menos, yo no la encontre), asi que lo que tenes que hacer es recorrer todos los elementos del combo e ir eliminandolos uno por uno, y recien ahi, cargar la respuesta.
Saludos -- Juan José Montes de Oca Arbós. [EMAIL PROTECTED] [EMAIL PROTECTED] http://world5.monstersgame.es/?ac=vid&vid=58044309 http://www.montesoft.com.ar http://www.es-facil.com/ganar/alta?Id=64395956 2007/5/31, Yurk! <[EMAIL PROTECTED]>: > > Saludos [EMAIL PROTECTED] de la lista, les escribo pues tengo una duda con la > que > espero puedan ayudarme. Tengo un par select's, ellos contendra las > categorias y el segundo las subcategorias que correspondan con la > categoria que se seleccione del primer elemento select y para esto > estoy hechando mano de Ajax. El problema que tengo es que no logro > "limpiar" los subcategorias del segundo combo cuando selecciono otra > categoria del primer select. El codigo que uso es el siguiente: > > function getData() { > var eCategory = document.getElementById("cbocategory"); > var eSubCategory = document.getElementById("cbosubcategory"); > > if (eCategory.selectedIndex != 0) { > > var iSelectedCategory = eCategory.value; > var querystring = "?cat="+iSelectedCategory; > var oXmlHttp = zXmlHttp.createRequest(); > oXmlHttp.open("get", "zz-get-childcategories.asp"+querystring, true); > oXmlHttp.onreadystatechange = function() { > > if(oXmlHttp.readyState == AjaxConst.XMLHTTP_STATUS_COMPLETE) { > if(oXmlHttp.status == AjaxConst.HTTP_RESPONSE_STATUS_OK) { > > fillSubcategories(oXmlHttp.responseText); > > } else { > //~ showResult("Ocurrio un error. " + oXmlHttp.statusText); > } > } > > }; > oXmlHttp.send(null); > } > > }//; > > function fillSubcategories(arData) { > > eSubCategory = document.getElementById("cbosubcategory"); > arGroupPairData = arData.split("|"); > > for(var i=0; i<arGroupPairData.length; i++) { > var sPairValueText = arGroupPairData[i].split(","); > addOptions(eSubCategory, sPairValueText[0], sPairValueText[1]); > } > }//; > > function addOptions(eSelect, sValue, sText) { > var eNewOption = document.createElement('option'); > eNewOption.value = sValue; > eNewOption.text = sText; > try { > eSelect.add(eNewOption, null); // standard compliant > } catch(ex) { > eSelect.add(eNewOption); // for ie only > } > }//; > > function clearPreviusOptions() { > var eSelect = document.getElementById("cbosubcategory"); > if(eSelect.length > 1) { > for(i=1;i<eSelect.length;i++) { > //~ eSelect.options[i]=null; > eSelect.remove(i); > } > } > }//; > > function getNumItems() { > var eSelect = document.getElementById("cbosubcategory"); > clearPreviusOptions(eSelect, eSelect.length); > }//; > > function init() { > var eCategory = document.getElementById("cbocategory"); > addEvent(eCategory, "click", clearPreviusOptions, false); > addEvent(eCategory, "change", getData, false); > }//; > > addLoadEvent(init); > > Espero puedan ayudarme con este tema. > > Saludos. > > -- > > > ------------------------------------------------------------- > _o) Yurk! > // \ Linux Registered User #418034 > U_/_ > > Dile NO al top-posting[*] > [*] ttp://es.wikipedia.org/wiki/Top-posting > ------------------------------------------------------------- > _______________________________________________ > javaEScript mailing list > javaEScript@scriptia.net > http://lists.scriptia.net/listinfo.cgi/javaescript-scriptia.net > ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: http://lists.scriptia.net/pipermail/javaescript-scriptia.net/attachments/20070531/9ca7b3fc/attachment.htm _______________________________________________ javaEScript mailing list javaEScript@scriptia.net http://lists.scriptia.net/listinfo.cgi/javaescript-scriptia.net