Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

fabio_br

Filtrando várias dropdown menu

Recommended Posts

Oi Gostaria de uma ajuda pra desenvolver uma forma de filtrar dados vindos de vários dropdown menus que estão num repeat reagion. Não sei como fazer o dream identificar qual coluna de menus está sendo requerida. veja o código:<form name="add_produto" id="add_produto" method="post" action="addtocart.asp?ref_number=<%=(rsPresult.Fields.Item("ref_number").Value)%>" > <p> </p> <table width="770" border="0" cellpadding="0" cellspacing="0"> <tr> <td colspan="2" valign="middle"><p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p> <p> </p></td> <td valign="top" > <% While ((Repeat2__numRows <> 0) AND (NOT rsPresult.EOF)) %> <%ref_number = rsPresult.Fields.Item("ref_number").Valueimage = rsPresult.Fields.Item("image_path").Valuenome = rsPresult.Fields.Item("nome_biquini").Value%> <%Dim rsCor__MMColParamrsCor__MMColParam = "1"if (ref_number <> "") then rsCor__MMColParam = ref_number%> <%Dim rsCorDim rsCor_cmdDim rsCor_numRowsSet rsCor_cmd = Server.CreateObject ("ADODB.Command")rsCor_cmd.ActiveConnection = MM_catvi_STRINGrsCor_cmd.CommandText = "SELECT DISTINCT Cores.Cor, Cores.Fotoscoresmaior, Cores.Fotothumbs, prod_biquinis.ID, prod_biquinis.nome_biquini, prod_biquinis.ref_number FROM Cores INNER JOIN prod_biquinis ON Cores.ID = prod_biquinis.ID WHERE ref_number LIKE ? ORDER BY Cor ASC" rsCor_cmd.Prepared = truersCor_cmd.Parameters.Append rsCor_cmd.CreateParameter("param1", 200, 1, 255, rsCor__MMColParam) ' adVarCharSet rsCor = rsCor_cmd.ExecutersCor_numRows = 0%> <%Dim Repeat1__numRowsDim Repeat1__indexRepeat1__numRows = -1Repeat1__index = 0rsCor_numRows = rsCor_numRows + Repeat1__numRows%><p align="left"><span class="style5"> <span class="style65"><img src="catvi/images/flecha_.gif" width="8" height="13" /></span><span class="style56"><%=(rsPresult.Fields.Item("nome_produto").Value)%></span></span> <br /> <span class="style32"><br /> Número de referência:  <%=(rsPresult.Fields.Item("ref_number").Value)%></span><br /> <span class="style3"><%=(rsPresult.Fields.Item("descr_detalhada").Value)%></span><br /> <br />   <select name="menutamanho" class="style3" onmouseover="MM_showHideLayers('tamanhos','','show')" onmouseout="MM_showHideLayers('tamanhos','','hide')"> <option value="-1">Tamanhos</option> <option value="P">P</option> <option value="M">M</option> <option value="G">G</option> <option value="GG">GG</option> </select> <span class="style32" onmouseover="MM_showHideLayers('tamanhos','','show','tamanhos1','','hide')" onmouseout="MM_showHideLayers('tamanhos','','hide','tamanhos1','','hide')"> </span> <select name="corlist" class="style3" title="<%=(rsCor.Fields.Item("Cor").Value)%>"> <option value="-1">cor</option> <%While (NOT rsCor.EOF)%><option value="<%=(rsCor.Fields.Item("Cor").Value)%>"><%=(rsCor.Fields.Item("Cor").Value)%></option> <% rsCor.MoveNext()WendIf (rsCor.CursorType > 0) Then rsCor.MoveFirstElse rsCor.RequeryEnd If%> </select> <select name="Qty<%=(rsPresult.Fields.Item("ID").Value)%>" size="1" class="style3" id="Qty<%=(rsPresult.Fields.Item("ID").Value)%>"> <option value="0" selected="selected">Quantidade</option> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5">5</option> </select> <br /> <input name="ref_number" type="hidden" id="ref_number" value="<%=(rsPresult.Fields.Item("ref_number").Value)%>" /> <input name="qtistock" type="hidden" id="qtistock" value="2" /> <br /><% While ((Repeat1__numRows <> 0) AND (NOT rsCor.EOF)) %> <%if Instr(Request.ServerVariables("HTTP_USER_AGENT"),"Opera") = 0 Then%> <a href="java script:;" onmouseover="MFX_loadURL('document.layers[0].document.layers[\'fotocor\']','<%=(rsCor.Fields.Item("Fotoscoresmaior").Value)%>',168,0,148,0);MM_showHideLayers('fotocor','','show');return document.MM_returnValue" onmouseout="MM_showHideLayers('fotocor','','hide')"><img src="<%=(rsCor.Fields.Item("Fotothumbs").Value)%>" border="0"></a> <%else%> <a href="java script:;" onmouseover="MFX_loadURL('document.layers[0].document.layers[\'fotocoropera\']','<%=(rsCor.Fields.Item("Fotoscoresmaior").Value)%>',145,0,124,0);MM_showHideLayers('fotocoropera','','show');return document.MM_returnValue" onmouseout="MM_showHideLayers('fotocoropera','','hide')"><img src="<%=(rsCor.Fields.Item("Fotothumbs").Value)%>" border="0"></a> <%End If%> <% Repeat1__index=Repeat1__index+1 Repeat1__numRows=Repeat1__numRows-1 rsCor.MoveNext()Wend%> </p> <p align="left" class="style3"> <span class="style54">  </span><span class="style31">Preço :</span><%= FormatCurrency((rsPresult.Fields.Item("preco").Value), 2, -2, -2, -2) %></p> <% Repeat2__index=Repeat2__index+1 Repeat2__numRows=Repeat2__numRows-1 rsPresult.MoveNext()Wend%> <p><a href="size.asp" class="style1">  Clique aqui para ver tamanho</a></p> <p class="style3"><a href="java script:document.add_produto.submit();"><img src="addtobag.gif" width="280" height="40" border="0" /></a></p> <p align="left" class="style3"><a href="recommentor/indique1.asp"><img src="/catvi/images/btn_indique.gif" alt="Indique esta página para um amigo" width="247" height="40" border="0" /></a></p> <p align="left" class="style3"> </p></td> </tr> <tr> <td width="294" height="25"><div align="center"><span class="style3"><span class="style31"> <td width="2"></td> <td></td> </tr> </table> </form>e na página que estaria filtrando gostaria de filtrar os dados dos menus selecionados algo como:<%Dim rsqtidade__MMColParamrsqtidade__MMColParam = "0"If (Request.Querystring("ref_number") <> "") Then rsqtidade__MMColParam = Request.Querystring("ref_number") End If%><%Dim rsqtidade__vartamanhorsqtidade__vartamanho = "%"If (Request.Form("menutamanho") <> "") Then rsqtidade__vartamanho = Request.Form("menutamanho") End If%><%Dim rsqtidade__varcorrsqtidade__varcor = "%"If (Request.Form("corlist") <> "") Then rsqtidade__varcor = Request.Form("corlist") End If%><%Dim rsqtidadeDim rsqtidade_cmdDim rsqtidade_numRowsSet rsqtidade_cmd = Server.CreateObject ("ADODB.Command")rsqtidade_cmd.ActiveConnection = MM_catvi_STRINGrsqtidade_cmd.CommandText = "SELECT ID, nome_biquini, nome_produto, ref_number, Estoque, Cor, Tamanho, ProductDetailID, peso_item, preco FROM QryEstoqueBiquini WHERE ref_number = ? AND Tamanho LIKE ? AND Cor LIKE ?" rsqtidade_cmd.Prepared = truersqtidade_cmd.Parameters.Append rsqtidade_cmd.CreateParameter("param1", 5, 1, -1, rsqtidade__MMColParam) ' adDoublersqtidade_cmd.Parameters.Append rsqtidade_cmd.CreateParameter("param2", 200, 1, 255, rsqtidade__vartamanho) ' adVarCharrsqtidade_cmd.Parameters.Append rsqtidade_cmd.CreateParameter("param3", 200, 1, 255, rsqtidade__varcor) ' adVarCharSet rsqtidade = rsqtidade_cmd.Executersqtidade_numRows = 0%>Como tenho sempre duas variaveis passadas pelo form, não sei como fazer o dream identificar e fazer a recordset corretamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado por tentar ajudar Morpheus !!!O que está acontecendo é o seguinte:Criei duas páginas; uma onde o usuário poderá selecionar cor, tamanho e quantidade de dois produtos gerados por uma mesma recordset usando repeat region e uma outra onde irá ser filtrado os dados enviados. O que acontece é que não sei o motivo pelo qual a recordset rsqtidade criada na página para filtrar os dados enviados via list/menu, isto é (cor, tamanho e quantidade), naum consegue achar os dados enviados dando erro:ADODB.Field error '800a0bcd' Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record. /addtocart.asp, line 39 Não consigo entender porque os dados naum estao sendo filtrados. Interessante notar que quando em outra página onde só tenho um produto, isto é, naum preciso de um reapeat region para gerar 2 subprodutos a recordset funciona normalmente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom diaEncontrei um erro no meu código, mas ainda preciso de ajuda. Veja na recordset rsqtidade da página que estou filtrando os parametros que estava usando era Request.QueryString("ref_number"):<%Dim rsqtidade__MMColParamrsqtidade__MMColParam = "0"If (Request.Querystring("ref_number") <> "") Then rsqtidade__MMColParam = Request.Querystring("ref_number") End If%>O que percebi é que o número de referência (ref_number) estava sendo enviado via url, consequentemente apenas um número era enviado pela url, já os outros parametros filtrados menutamanho e corlist eram enviados via form usando repeat region, tinha entaum na hora da rsqtidade executar apenas um numero de referência enviado e 2 tamanhos e 2 cores. Pensando nisso alterei o código, inserindo um hidden field na página de envio para enviar o número de referência via post, alterei a recordset para:<%Dim rsqtidadeDim rsqtidade_cmdDim rsqtidade_numRowsSet rsqtidade_cmd = Server.CreateObject ("ADODB.Command")rsqtidade_cmd.ActiveConnection = MM_catvi_STRINGrsqtidade_cmd.CommandText = "SELECT ID, nome_biquini, nome_produto, ref_number, Estoque, Cor, Tamanho, ProductDetailID, peso_item, preco FROM QryEstoqueBiquini WHERE ref_number = " & Request.Form("varnumref") & " AND Tamanho LIKE '" & Request.Form("menutamanho") & "' AND Cor LIKE '" & Request.Form("corlist") & "'" rsqtidade_cmd.Prepared = trueSet rsqtidade = rsqtidade_cmd.Executersqtidade_numRows = 0%>E agora estou tendo um erro que naum estou conseguindo debugar, ce alguem pudesse ajudar, veja o erro abaixo:Microsoft OLE DB Provider for ODBC Drivers error '80040e14' [Microsoft][ODBC Microsoft Access Driver] Syntax error (comma) in query expression 'ref_number = 369, 8242 AND Tamanho LIKE 'M, M' AND Cor LIKE 'Azul, Estampado''. /addtocart.asp, line 17 Sem mais ObrigadoFábio

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.