Ir para conteúdo

POWERED BY:

Arquivado

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

gpassarelli

[Resolvido] Config Split

Recommended Posts

Bom galera é o seguinte, me deparei com um problema e a única saída que achei foi usar o split, porém nunca usei e nao sei como posso configurar para o que preciso,espero que vocês me ajudem.

 

Do meu bando de dados eu leio o valor da tabela "acomodacao" que me retorna:

Casa de Familia(Pensão Completa): +250;Casa de Familia(Meia Pensão): +150;Ap. Estudantil: +300

o que eu preciso fazer é: montar um list box onde apareca cada opcao separada por ";" e o value do intem seja o numero do lado direto do mais.

ou seja, mais ou menos o que preciso é que:

Casa de Familia(Pensão Completa): +250;Casa de Familia(Meia Pensão): +150;Ap. Estudantil: +300

vire:

<select name="acomodacao">
        <option value="250">Casa de Familia(Pensão Completa): +250</option>
        <option value="150">Casa de Familia(Meia Pensão): +150</option>
        <option value="300">Ap. Estudantil: +300</option>
</select>
cacei algumas coisas na net e consegui separar tudo e deixar em cada linha o tipo de acomodacao em uma e o valor na outra, mas ao tentar jogar dentro do list box nao deu certo.

Segue o codigo que consegui montar.

Quebra = Split(acomodacao, ";")
For x = LBOUND(Quebra) to UBOUND(Quebra)
Quebra2 = Split(quebra(x), "+")
For y = LBOUND(Quebra2) to UBOUND(Quebra2)
Response.Write"<select name=select id=select>"Quebra2(y) &
response.Write"</select>"
Next
next
%>

Desde já vlw galera, grande abraco

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta assim:

Response.Write"<select name=select id=select>"

response.write"<option value="&Quebra2(y)&">"&Quebra2(y)&"</option>"

Next

...

</select>

 

Cara do seu jeito retornou o seguinte codigo:

<option value=Casa de Familia(Pensão Completa): >Casa de Familia(Pensão Completa): </option>
<option value=250>250</option>
<option value=Casa de Familia(Meia Pensão): >Casa de Familia(Meia Pensão): </option>
<option value=150>150</option>
<option value=Ap. Estudantil: >Ap. Estudantil: </option>
<option value=300>300</option>

pensei um pouco, e com o codigo:

Quebra = Split(acomodacao, ";")
For x = LBOUND(Quebra) to UBOUND(Quebra)
Quebra2 = Split(quebra(x), "+")
For y = LBOUND(Quebra2) to UBOUND(Quebra2)
response.write"<option value="&Quebra2(y)&">"
Next
response.write Quebra(x)&"</option>"
Next
Consegui produzir o resultado:

<option value=Casa de Familia(Pensão Completa): >
<option value=250>Casa de Familia(Pensão Completa): +250</option>
<option value=Casa de Familia(Meia Pensão): >
<option value=150>Casa de Familia(Meia Pensão): +150</option>
<option value=Ap. Estudantil: >
<option value=300>Ap. Estudantil: +300</option>
O problema esta sendo q ta vindo uma vez a mais as seguintes opcoes:

<option value=Casa de Familia(Pensão Completa): >
<option value=Casa de Familia(Meia Pensão): >
<option value=Ap. Estudantil: >
O resto esta do jeito que eu quero...agora preciso entender como tirar essas 3 que tao vindo a mais...

Compartilhar este post


Link para o post
Compartilhar em outros sites

estava reanalisando meu projeto, e achei a melhor opcao.

vou usar o split para manter assim o codigo:

Quebra = Split(tp_acomodacao, ";")
For x = LBOUND(Quebra) to UBOUND(Quebra)
response.write"<option value="&Quebra(x)&">"&Quebra(x)&"</option>"
Next
dessa maneira terei o resultado:

<option value=Casa de Familia(Pensão Completa): +250>Casa de Familia(Pensão Completa): +250</option>
<option value=Casa de Familia(Meia Pensão): +150>Casa de Familia(Meia Pensão): +150</option>
<option value=Ap. Estudantil: +300>Ap. Estudantil: +300</option>
E aew o valor armazenado no db depois seria por exemplo:

Casa de Familia(Pensão Completa): +250

aew resolvi usar o split apenas na hora que eu for imprimir o resultado do banco.

usando um replace para deixar o valor do maneira desejada:

acomodacao = "Casa de Familia(Pensão Completa): +250"
acomodacao = Replace(acomodacao, "(", ";")
acomodacao = Replace(acomodacao, ")", ";")
acomodacao = Replace(acomodacao, ": ", "")
acomodacao = Replace(acomodacao, "+", "")
dessa maneira seria me retornado:

Casa de Familia;Pensão Completa;250

assim usaria o split com ";" e aew teria as informacções desejadas.

Maravilha tudo do jeito que desejo, porém agora estou tendo outro problema.

gostaria de guardar em variaveis as partes do split.

Por exeplo:

tp = casa de familia

refeicao = pensão completa

valor = 250

para depois poder usar essas variaveis ao longo do script.

Como poderia fazer isso?

 

vlw galera

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se eu entendi a duvida, seria em como mexer com esses valores ao longo do sistema ?

Pode-se usar Session (que é o mais indicado neste caso, creio eu) assim ficaria + / - desta forma:

Session("tp") = "casa de familia"

Session("refeicao") = "pensão completa"

Session("valor") = "250"

 

Sendo que o codigo pode ser melhorado, pois no loop que cria o select, se estiver puxando valores de um banco de dados, o value pode ser o id, assim poderia usar uma session, ao invés de 3:

Session("tp")= rs("id")

A vantagem é ter um código mais enxuto e com isso mais rápido.

 

Bastaria para isso gravar no banco de dados as possiveis acomodações:

id nome preço

1 casa de familia com pensão completa 250

2 casa de familia com meia pensão 150

 

ou de outras formas tipo acomodação e preço e numa tabela a parte o tipo de pensão ai basta cruzar os dados e obter todas as possibilidades:

dentro do loop acomodação, cria-se o loop pensão e com isso obtem-se todas as possibilidades.

 

Acho que me estendi demais ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se eu entendi a duvida, seria em como mexer com esses valores ao longo do sistema ?

Pode-se usar Session (que é o mais indicado neste caso, creio eu) assim ficaria + / - desta forma:

Session("tp") = "casa de familia"

Session("refeicao") = "pensão completa"

Session("valor") = "250"

 

Sendo que o codigo pode ser melhorado, pois no loop que cria o select, se estiver puxando valores de um banco de dados, o value pode ser o id, assim poderia usar uma session, ao invés de 3:

Session("tp")= rs("id")

A vantagem é ter um código mais enxuto e com isso mais rápido.

 

Bastaria para isso gravar no banco de dados as possiveis acomodações:

id nome preço

1 casa de familia com pensão completa 250

2 casa de familia com meia pensão 150

 

ou de outras formas tipo acomodação e preço e numa tabela a parte o tipo de pensão ai basta cruzar os dados e obter todas as possibilidades:

dentro do loop acomodação, cria-se o loop pensão e com isso obtem-se todas as possibilidades.

 

Acho que me estendi demais ...

 

hehe, vamos la.

O que acontece é o seguinte, eu tenhon uma tabela onde eu guardo os programas cadastrados, e uma das colunas é "acomodacao"

dentro dessa coluna, é guardados as varias opções de acomodação

Casa de Familia(Pensão Completa): +250;Casa de Familia(Meia Pensão): +150;Ap. Estudantil: +300

Estou armazenado desta maneira por ser muitas escolas, diferentes tipos de acomodacao e alimentacao para cada uma delas e diferentes valores e pacotes de acomodacao, entao achei melhor armazenar desta maneira.

 

Ae chega onde quero usar o script. O usuario pode fazer sua matricula online, e escolher em dentro de uma list a opcao de acomodacao desejada. Onde entra o split, e aew eu guardo no db das matriculas na coluna acomodacao a acomodacao escolhida por ele.

So que na hora de gerar o orcamento/venda/relatorio eu precisava que o tipo de acomodacao fosse uma variavel, a alimentacao outra, e o valor em outra.

 

Acho que ficou longo, mas acho q da para entender

Compartilhar este post


Link para o post
Compartilhar em outros sites

a tabela seria assim:

id ... acomodação

1 ... Casa de Familia(Pensão Completa): +250

2 ... Casa de Familia(Meia Pensão): +150

...

 

Se for isso poderia puxar os dados pelo id, agora se for uma linha unica, ai precisa mesmo do split e criar uma session para cada um dos valores escolhidos.

 

Existe a possibilidade de refazer esse bd ?

Acho que terá problemas com ele no futuro se ele estiver com os valores numa linha unica

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao, nao eh assim a tabela...

o db ja ta tudo pronto, se for refazer teria que refazer tudo...

a unica coisa que quero e o seguinte

para cada parte do split ele guardar em uma variavel diferente...

pra na hora de imprimir o orcamento eu poder trabalhar para que ta tabela seja exibida cada informaçao(tp, refeicao e valor) no seu devido lugar, entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Session("acomod") = acomodacao

ou

Session("'"&Quebra(x)&"'")" <= deve ter algum erro, provavelmente nas aspas mas isso é fácil de resolver

 

o codigo ficaria assim entao?

Quebra = Split(acomodacao, ";")
For x = LBOUND(Quebra) to UBOUND(Quebra)
Session("'"&Quebra(x)&"'")
Next
e como eu recuperaria dps esses valores?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Response.write Session("acomod") ou o que pretender fazer com isso por ex. uma session que guarda o preço de um produto, pode ser multipicada, dividida, etc...

Session("'"&Quebra(x)&"'") <= neste caso existem 2 possibilidades: ou você saberia previamente quais são os possiveis nomes atribuidos, ai basta dar um if not session("quarto familia...") = "" then ...

ou usa a rotina do split novamente e compara, se estiver vazio nao faz nada, caso contrario, faz alguma coisa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele esta gerando algum número de erro ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

ele esta gerando algum número de erro ?

 

Cara fazendo isso por session ta sendo uma coisa mt complicada para mim...

nao ta dando erro nenhum, ta funcionando certinho fazendo o split tudo...

o que eu queria e pegar as partes que foram separadas do split e guarda-las em variavies,

nem q seja tipo

x1=casa de familia

x2 = pensao completa

x3= 500

nao existe um jeito simples de fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera, pensei um pouco aqui mas consegui resolver...

ficou assim o codigo:

Quebra = Split(acomodacao, ";")
For x = LBOUND(Quebra) to UBOUND(Quebra)
Next
acomodacao=quebra(x-3)
alimentacao=quebra(x-2)
valor=quebra(x-1)

Vlw aos 2 que ajudaram...

RESOLVIDO

Compartilhar este post


Link para o post
Compartilhar em outros sites

parabéns

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.