Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/01/2005, 02:46
estoquera44
 
Fecha de Ingreso: mayo-2003
Mensajes: 70
Antigüedad: 22 años
Puntos: 0
Por favor ayuda, no consigo que me muestre todos los datos

Buenos dias, necesito un poco de ayuda con el tema de los combos.
Llevo todo el día intentando arreglar el siguiente problema:
Utilizo el codigo de listas dependientes de aspfacil, ese que tanto circula por este foro, y siempre me ha funcionado, pero ahora que lo quiero usar para mostrar otros datos, resulta que no me los muestra todos, es decir, tengo una tabla rangos (id_rango, name_rango), otra tipo_pieza (id_tipo_pieza, name_tipo_pieza) y una joyeria_productos (id_joyeria_productos, id_rango, id_tipo_pieza).
Quiero mostrar el primer combo solo con los nombres de la piezas que estan en articulos (puede haber mas piezas en la tabla piezas que no esten en articulos y no se mostrarian) y luego otro combo en el que mostrar los rangos asociados a esa pieza en la tabla articulos.
Pues bien, si tengo 4 piezas con id_tipo_pieza "1", y 2 de ellas tienen id_rango "2" y otras 2 id_rango "3" solo me muestra 2 opciones en el desplegable, pero el problema es que las opciones que muestra son iguales, es decir 2 y 2 en lugar de 2 y 3.
En otro caso de 4 piezas de id_tipo_pieza "2", y 2 de ellas id_rango "3" y otras 2 de id_rango "4", me muestra bien, una de id_rango 3 y otra de 4.
He llegado a pensar que solo se queda con los ultimos valores de la tabla, pero porque no coge todos?

Código:
<form action="search.asp" method="post" name="RANGOSSS">
	<table width="100%" border="0" cellspacing="0" cellpadding="0">
	  <tr>
	    <td width="16%" class="camposformJoyeria">Piezas</td>
	    <td width="26%"><select name="pieza" size="1" onChange="ComponerLista (document.forms.RANGOSSS.pieza[selectedIndex].value);" >
                <option value="0" selected>Seleccione...&nbsp;&nbsp;</option>
                <%
Dim oConn, rsTIPO_PIEZA, SQL, cuenta
		set oConn=Server.CreateObject("ADODB.Connection")
		set rsTIPO_PIEZA=Server.CreateObject("ADODB.Recordset")
		oConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("data/km0.mdb")
				
		SQL="SELECT * FROM TIPO_PIEZA WHERE ID_TIPO_PIEZA IN (SELECT ID_TIPO_PIEZA FROM JOYERIA_PRODUCTOS)"
		rsTIPO_PIEZA.Open SQL, oConn
		cuenta=1
		while not rsTIPO_PIEZA.EOF %>
                <option value="<%=rsTIPO_PIEZA.Fields("ID_TIPO_PIEZA")%>"> <%=rsTIPO_PIEZA.Fields("NAME_TIPO_PIEZA")%></option>
            <%
	    rsTIPO_PIEZA.MoveNext
	    cuenta=cuenta+1
	    wend
	    rsTIPO_PIEZA.Close
	%>
	</select></td>
	        <td width="14%">Precio</td>
	        <td width="25%"><select name="rango">
              <option value="0" selected>Seleccione...</option></select></td>
	        <td width="19%">
	            <input type="submit" name="Submit" value="Buscar">
	          </td>
	        </tr>
	      </table>
	      </form></td>
	    </tr>
	  </table>
	</td>
</tr>
</table>

<SCRIPT LANGUAGE="Javascript">
<!--
function Tupla ( campo1, campo2 )
{
	this.campo1 = campo1;
	this.campo2 = campo2;
}

<% 
SQL="SELECT * from JOYERIA_PRODUCTOS"

rsTIPO_PIEZA.Open SQL, oConn
cuenta=0 
cat="basura"
while not rsTIPO_PIEZA.EOF 
	
	if cat<>rsTIPO_PIEZA.Fields("ID_TIPO_PIEZA") then
		cuenta=0
		cat=rsTIPO_PIEZA.Fields("ID_TIPO_PIEZA") %>
		var opciones<%=cat%> = new Array();
	<% end if %>

opciones<%=cat%>[<%=cuenta%>]=new Tupla("<%=rsTIPO_PIEZA.Fields("id_RANGO")%>","<%=rsTIPO_PIEZA.Fields("ID_RANGO")%>");
<%
cuenta=cuenta + 1
rsTIPO_PIEZA.MoveNext
Wend
%>

<%
rsTIPO_PIEZA.Close
set rsTIPO_PIEZA=nothing
oConn.Close
set oConn = nothing
%>

var contador;

function ComponerLista ( array ) {
	
	BorrarLista();
	array = eval("opciones" + array);
	for (contador=0; contador<array.length; contador++) 
		{
		var optionObj = new Option( array[contador].campo1, array[contador].campo2 );
		RANGOSSS.rango.options[contador] = optionObj;
		} 
}
function BorrarLista() {
	RANGOSSS.rango.length=0;
}
-->
</SCRIPT>
</form>
Pueden comprobarlo en la siguiente direccion:
http://www.suntrapyasociados.com/pru...ria_marcas.asp

En esta otra esta hecha la prueba sin combos, pasando datos entre paginas (funciona correctamente y se pueden ver los valores que deberian salir):
http://www.suntrapyasociados.com/pruebas/prueba4.asp

Espero que puedan echarme una mano, si no para arreglarlo para decirme donde puede estar el error.
Muchas gracias.

Última edición por estoquera44; 10/01/2005 a las 06:53