Ir para conteúdo

POWERED BY:

Arquivado

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

Web Design Valdeci

[Resolvido] Proplema com condição no select

Recommended Posts

Boa Tarde,

 

Estou desenvolvendo um sistema para uma operadora de planos de saúde. Ele faz uma busca de preços de acordo com a seleção que é feito entre os combos. O problema é que não estou conseguindo que imprima o dado certo.

 

Veja abaixo a imagem do que estou falando.

 

Imagem Postada

 

Para receber esta consulta eu utilizei o select abaixo:

 

Resultado = Request.QueryString("Resultado")
if Resultado = "Consultar" Then
segmentos = Request.Form("segmentos")
subcategorias = Request.Form("subcategorias")
servicos = Request.Form("servicos")
ArrayQtd = request.form("qtd")

Set CsListas = Server.CreateObject("ADODB.Recordset")
CsListas.Open "SELECT * FROM Listas WHERE `idOperadora` = "&id&" and `idTipo` = "&segmentos&" and `idEspecialidade` = "&subcategorias&" and `idIdade` IN ("&servicos&") and `qtd` IN ("&ArrayQtd&") ORDER BY valor Asc",Conexao
End If

O problema é que o ítem qtd não está separado por virgula e não consigo que ele busque certo.

 

Veja: '`idOperadora` = 1 and `idTipo` = 6 and `idEspecialidade` = 10 and `idIdade` IN (6, 7) and `qtd` IN (5, 6, , )'.

 

Alguem poderia me ajudar com esta consulta?

 

Estou fazendo alguma coisa errada?

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual o tipo de campo no for de quantidade...

Compartilhar este post


Link para o post
Compartilhar em outros sites

poste como esta o formulario dela

Compartilhar este post


Link para o post
Compartilhar em outros sites

<form name="form1" method="post" action="CotacaoPasso3.asp?Resultado=Consultar&opc=1">
                        <table width="100%" border="0" cellspacing="3" cellpadding="0">
                          <tr>
                            <td colspan="2"> </td>
                          </tr>
                          <tr>
                            <td width="29%" class="txt_cinza_11_bold">Tipo de plano: </td>
                            <td width="71%"><span class="sub_titulo12">
                              <select name="segmentos" class="txt" id="segmentos" onChange="combo('#segmentos','#subcategorias','combo_subcategorias.asp')">
                                <option selected="selected" value="0">... Selecione ...</option>
                                
                                <option value="10">
                                PME - Para empresas à partir de 2 usuários
                                </option>
                                
                                <option value="6">
                                Individual - Indicado para você e sua família
                                </option>
                                
                                <option value="11">
                                Coletivo - Para empresas à partir de 50 usuários
                                </option>
                                
                              </select>
                            </span></td>
                          </tr>
                          <tr>
                            <td class="txt_cinza_11_bold">Especialidade:</td>
                            <td><select name="subcategorias" id="subcategorias" class="txt" onChange="combo('#subcategorias','#servicos','combo_servicos.asp')">
                            </select></td>
                          </tr>
                          <tr>
                            <td colspan="2" class="txt_cinza_11_bold">Digite a quantidade de usuários e marque junto a idade pretendida:  </td>
                            </tr>
                          <tr>
                            <td class="txt_cinza_11_bold"> </td>
                            <td><ul class="checklist" id="servicos">

                                                        </ul></td>
                          </tr>
                          <tr>
                            <td class="txt_cinza_11_bold"> </td>
                            <td><label>
                              <input name="Submit" type="submit" class="botao" value="Consultar Valores">
                            </label></td>
                          </tr>
                        </table>
                                            </form>

no Combo Subcategorias:

 

<%
Dim Conexao
set Conexao=server.CreateObject("Adodb.Connection")
Conexao.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\caminho\db\bd.mdb

intID = request("id")

Set rs = Server.CreateObject("ADODB.Recordset")
rs.ActiveConnection = Conexao
rs.Source = "SELECT Especialidade.nome, Especialidade.id FROM Tipo INNER JOIN Especialidade ON Tipo.id = Especialidade.idTipo WHERE Especialidade.idTipo=" & intID & " ORDER BY Especialidade.nome asc"
rs.CursorType = 0
rs.CursorLocation = 3
rs.LockType = 1
rs.Open()

%>
<option value="0">..Selecione..</option>
<%while not rs.EOF%>
<option value="<%Response.Write(rs("id"))%>"><%=server.HTMLEncode(rs("nome"))%></option>
<%
rs.MoveNext
wend
rs.close
set rs = nothing			
%>

 

combo Serviços:

<%
Dim Conexao
set Conexao=server.CreateObject("Adodb.Connection")
Conexao.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\caminho\db\bd.mdb"

intID = request("id")

Set rs = Server.CreateObject("ADODB.Recordset")
rs.ActiveConnection = Conexao
rs.Source = "SELECT Idade.nome, Idade.id FROM Especialidade INNER JOIN Idade ON Especialidade.id = Idade.idEspecialidade WHERE Idade.idEspecialidade=" & intID & " ORDER BY Idade.nome asc"
rs.CursorType = 0
rs.CursorLocation = 3
rs.LockType = 1
rs.Open()

%>
 <li><% While NOT Rs.EoF %>
<label for="servicos">
<input id="qtd" name="qtd" type="text" size="3" class="txt"/>
 <input id="servicos" name="servicos" type="checkbox" value="<% = Rs("id") %>"  onclick="javascript:ValidaContBairro(this);" /><% = server.HTMLEncode(Rs("nome"))%>
</label>
</li><% Rs.MoveNext %>
<% Wend 
rs.close
set rs = nothing	%>
<li class="par">

Compartilhar este post


Link para o post
Compartilhar em outros sites

onde o user entra com a quantidade de usuários ?

me parece k sua estrutura nao esta com uma funcionalidade correta, você precisa realmente ver a necessidade do user e em cima disso, desenvolver as possibilidades de opcoes oferecida, uma pesquisa interativa...

deixe o campo onde ele entra com a quantidade com mesmo nome, depois recupere tud, virá separado por virgula depois você dá um SPLIT enele...

Compartilhar este post


Link para o post
Compartilhar em outros sites

O campo onde está o local da pessoa digitar a quantidade está com o mesmo nome e junto com o:

 

Combo Serviços:

 

<input id="qtd" name="qtd" type="text" size="3" class="txt"/> <input id="servicos" name="servicos" type="checkbox" value="<% = Rs("id") %>"  onclick="javascript:ValidaContBairro(this);" /><% = server.HTMLEncode(Rs("nome"))%>

Ele aparece a virgula veja:

 

'`idOperadora` = 1 and `idTipo` = 6 and `idEspecialidade` = 10 and `idIdade` IN (6, 7) and `qtd` = (5, 6, , )'.

 

mas não sei porque onde o campo vai vazio ele coloca em branco, e eu quero que ele poste apenas o dado do form quantidade que eu colocar valor.

 

Vê se você entedeu agora....

Compartilhar este post


Link para o post
Compartilhar em outros sites

você nao pode usar um campo separado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha o que eu fiz:

 

Fiz o split que você disse e deu a seguinte mensagem de erro:

 

Resultado = Request.QueryString("Resultado")
if Resultado = "Consultar" Then
segmentos = Request.Form("segmentos")
subcategorias = Request.Form("subcategorias")
servicos = Request.Form("servicos")
ArrayQtd = Split(Request.form("qtd"),",") 


Set CsListas = Server.CreateObject("ADODB.Recordset")
CsListas.Open "SELECT * FROM Listas WHERE `idOperadora` = "&id&" and `idTipo` = "&segmentos&" and `idEspecialidade` = "&subcategorias&" and `idIdade` IN ("&servicos&") and `qtd` IN ("&ArrayQtd&") ORDER BY valor Asc",Conexao
End If

Microsoft VBScript runtime error '800a000d'

 

Type mismatch

 

/CotacaoPasso3.asp, line 27

Compartilhar este post


Link para o post
Compartilhar em outros sites

linha 27 é o CsListas.Open "SELECT * FROM Listas WHERE `idOperadora` = "&id&" and `idTipo` = "&segmentos&"

se for verifique pois deve estar passando um campo de tipo errado, na sua SQL ambos saun numericos

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza, kker posat ae..

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.