Ir para conteúdo

Arquivado

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

Nino7

Comando FOR em ASP

Recommended Posts

Ae galera, como vcs são experts, qria saber se tem como fazer um FOR nesse código imaginando que seja até 100 por exemplo...

 

'Recupera para montar o Mecanismo dos Códigos
		code1 = request.Form("code1")
		produto1 = request.Form("produto1")
		valor1 = request.Form("valor1")

	if len(code1) <> 0 then
		Set rsCode = Conn.Execute("Select Produto,Valor from Produtos where Codigo = '" & code1 & "'")
		if not rsCode.EOF then
		produto1 = rsCode("Produto")
		valor1 = rsCode("Valor")
		end if
	end if

		'Código 2
		code2 = request.Form("code2")
		produto2 = request.Form("produto2")
		valor2 = request.Form("valor2")

	if len(code2) <> 0 then
		Set rsCode = Conn.Execute("Select Produto,Valor from Produtos where Codigo = '" & code2 & "'")
		if not rsCode.EOF then
		produto2 = rsCode("Produto")
		valor2 = rsCode("Valor")
		end if
	end if
	
		'Código 3
		code3 = request.Form("code2")
		produto3 = request.Form("produto2")
		valor3 = request.Form("valor2")

	if len(code3) <> 0 then
		Set rsCode = Conn.Execute("Select Produto,Valor from Produtos where Codigo = '" & code3 & "'")
		if not rsCode.EOF then
		produto3 = rsCode("Produto")
		valor3 = rsCode("Valor")
		end if
	end if

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, não sei como está seu sistema, mas eu faria da seguinte forma:

Na página que posta o form, deixaria os campos Code, todos com o mesmo nome:

<form action="tratarForm.asp" method="post">
    <fieldset>
	Item 1:
        <input type="text" name="code" />
	Item 2:
        <input type="text" name="code" />
	Item 3:
        <input type="text" name="code" />
	Item 4:
        <input type="text" name="code" />
	Item 5:
        <input type="text" name="code" />
	Item 6:
        <input type="text" name="code" />
        <input type="submit" />
    </fieldset>
</form>

E na página que trata essas informações faria assim:

<% 
code = Request.Form("code")
sql = "SELECT Produto, Valor FROM Produtos WHERE Codigo in ("& code& ")"
Set rsCode = Conn.Execute(sql)
Response.Write sql

If Not rsCode.eof Then
    ' Entre com seu código, uma sujestão seria montar um array para campo.
End If
%>

Não sei se resolve seu problema, mas que de longe mais simples e economico, isto é.

Imagina tendo que fazer 100 consultas ao banco a cada vez que este código fosse executado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Podemos fixar o número de looping em um bloco de código a ser feito por meio de laços FOR...NEXT. Este é um dos scripts de comandos mais comuns utilizados em diferentes idiomas. Vamos começar com a sintaxe básica do loop for próximo.

 

For count_start to count_end step 1
Script block
Next

count_start é a variável que armazena o valor inicial da contagem, count_end é o valor final do ciclo e o valor dos aumentos count_start pelo valor do step. Valor padrão do step é de 1. Aqui está um código simples para mostrar o número 1-10 por loop For Next.

 

 

Dim i
For i=1 to 10 
Response.Write i & "<br>"
Next

 

 

O código acima irá imprimir o número 1-10. Nós podemos modificar o código, adicionando um valor de 3 step (de 3 em 3) como este

 

 

Dim i
For i=1 to 10 step 2
Response.Write i & "<br>"
Next

 

 

A saída do código acima é 1 3 5 7 9 com quebras de linha após o final de cada número

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade o que eu qro fazer é o seguinte:

O cara digita o código e clica INCLUIR ai busca o produto e mostra o código e o produto...

Ai ele digita outro código no outro campo que apareceu e clica incluir dinovu, e aparece o produto dinovu...

 

E assim por diante, mas se ele incluir 100 campos,

No meu código eu fiz até o 10 assim:

 

'Recupera para montar o Mecanismo dos Códigos
		code1 = request.Form("code1")
		produto1 = request.Form("produto1")
		valor1 = request.Form("valor1")

	if len(code1) <> 0 then
		Set rsCode = Conn.Execute("Select Produto,Valor from Produtos where Codigo = '" & code1 & "'")
		if not rsCode.EOF then
		produto1 = rsCode("Produto")
		valor1 = rsCode("Valor")
		else
		code1 = ""
		end if
	end if

E o FORM ficou:

 

total_inputs = 1
	response.Write "<tr bgcolor='#FFFFFF'><td width=50> Código:</td><td><input type=text size=10 name=code1 id=code value='" & code1 & "'></td>" &_
					"<td> Produto:</td><td><input type=text size=40 name=produto1 disabled value='" & produto1 & "'></td>" &_
					"<td> Valor:</td><td><input type=text name=valor1 disabled value='" & FormatCurrency(valor1,2) & "'></td></tr>"

Só que tb tive que fazer varios, se for 100 tenho que fazer 100 mudando os valores de:

code1... produto1... valor1...

Compartilhar este post


Link para o post
Compartilhar em outros sites

na verdade você terá um formulárion simples, onde o user entra com o codigo e você faz a busca e exibe na tela para ele, existem exemplos usando AJAX que fica interesssante para seu caso...

O cara digita o código e clica INCLUIR ai busca o produto e mostra o código e o produto...

Ai ele digita outro código no outro campo que apareceu e clica incluir dinovu, e aparece o produto dinovu...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eh que AJAX não sei usar,

Mas recomenda algum simples pra mim?

 

Ja sei o que eu preciso e não consigo...

Preciso que a variavel seja o contador do FOR,

Por exemplo:

 

for x=1 to 10
code1 = request.form("Codigo")
next

Mas imagine que a variavel "code1" eu criei na mão,

Preciso que essa variavel seja "code2" "code3" e assim até o fim do LOOP.

 

Tentei assim mas não consegui:
for x=1 to 10
"code"&x = request.form("Codigo")
next

Alguma luz?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O Loop que eu preciso indifere do Form,

Mas ta ai:

 

response.Write "<tr><td width=50> Código: </td><td><input type=text size=10 name=code1 id=code value='" & code1 & "'></td>" &_
	"<td> Produto:</td><td><input type=text size=40 name=produto1 disabled value='" & produto1 & "'></td>" &_
	"<td>Qtd: </td><td><input type=text size=1 name=qtd1 value='" & qtd1 & "'></td>" &_
	"<td> Valor:</td><td><input type=text name=valor1 disabled style='width:75; text-align=right' value='" & FormatCurrency(valor1,2) & "'></td></tr>"

Ai abaixo vem o code2... produto2... e assim por diante!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Teria jeito de fazer um LOOP pra não digitar os 30 ifs?

 

function validaForm(){
   if(document.cadform.code30.value!=""){	
   if(document.cadform.qtd30.value < "1"){
   alert("Digite a quantidade!");
   document.cadform.qtd30.select();
   return false;
	}}
return true;
}

Alias eu ja fiz os 30 mas qria otimizar... Valeu!

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.