Ir para conteúdo

POWERED BY:

Arquivado

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

Carlos Moreira

Como gravar cores?

Recommended Posts

testei tiozinho mas como esta tratando o lance das cores? apareceu so uma das que cadastrei

Compartilhar este post


Link para o post
Compartilhar em outros sites

em que parte do trabalho voce está? no seu db os dados estao separados por virgula mesmo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

certo, o problema está no request, acho que você vai ter que fazer um for each pra pegar todos os checkedsqual componente de upload?

Compartilhar este post


Link para o post
Compartilhar em outros sites

troque

cores = UploadRequest.Item("cores").Item("Value")
por

for each valor in UploadRequest.Item("cores").Item("Value")if cores ="" thencores =valorelsecores =cores&","&valorend ifnext
não garanto que funcione....manda bala e veremos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu coloco assim Jonathan?

 

categoria1 = UploadRequest.Item("categoria1").Item("Value")titulo = UploadRequest.Item("titulo").Item("Value")referencia = UploadRequest.Item("referencia").Item("Value")for each valor1 in UploadRequest.Item("cores").Item("Value")if cores ="" thencores =valor1elsecores =cores&","&valor1end ifnextdescricao = UploadRequest.Item("descricao").Item("Value")
PQ ASSIM DEU ERRO

 

"Object not a collection "

Compartilhar este post


Link para o post
Compartilhar em outros sites

jonathandj na realidade ele fala isso na linha que contem o "for each" --- o objeto não é uma coleção ---Jesus não o que posso fazer... estou precisando disso realmente!você nao sabe onde eu posso encontrar um modelo para pode estudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

foi mal cara...ontem na corrida coloquei uma coisa sem nexo

 

segue abaixo uma POG(programação orientada a gambiarra), foi a unica maneira que encontrei, espero que alguem poste a correta, mas segue...

na página do formulario tens que fazer uma pequena alteração colocando os names dos inputs das cores diferentes, concatenando o id da tabela cores e criar um input hidden pra armazenar esses ids que serão enviados para a págiana do upload,assim:

formulario.asp

<%do while not rsCor.eof%> <input name="cores<%rsCor("id")%>" type="checkbox" value="<%=rsCor("id")%>" />rsCor("nome")<br /><%arrayCores = arrayCores&rsCor("id")rsCor.movenextloop%> <input type="hidden" name="arrayCores" value="<%=mid(arrayCores,2,len(arrayCores))%>" />
no upload.asp efetuamos a POG, armazenando na variavel coresOk o array com os ids escolhidos no form

arrayCores = UploadRequest.Item("arrayCores").Item("Value")arrayCores = split(arrayCores,",")for i=lbound(arrayCores) to ubound(arrayCores)	on error resume next	cores = UploadRequest.Item("cores"&arrayCores(i)).Item("Value")	if err.number=0 then		coresOk = coresOk&","&cores 	end ifnextResponse.Write(mid(coresOk,2,len(coresOk)))
acho que é isso, testa ai

Compartilhar este post


Link para o post
Compartilhar em outros sites

Jonathan fiz isso e agora nao gravou nenhum dado sera que tem algo errado?

 

arrayCores = UploadRequest.Item("arrayCores").Item("Value")Call abre_conexao(ConnString,Conn)arrayCores = split(arrayCores,",")for i=lbound(arrayCores) to ubound(arrayCores)	on error resume next	cores = UploadRequest.Item("cores"&arrayCores(i)).Item("Value")	if err.number=0 then		coresOk = coresOk&","&cores 		sql = "Insert Into produtos (categoria1, titulo, referencia, cores, descricao, valor, data, usuario, capa, aprovado) VALUES ('" & categoria1 & "', '" & titulo & "', '" & referencia & "', '" &coresOk& "', '" & descricao & "', '" & valor & "', '" & now & "', '" & usuario & "', '" & capa & "', '" & aprovado & "')"Conn.Execute(sql)  end ifnextCall fecha_conexao() Response.Redirect "produtolist.asp"

Compartilhar este post


Link para o post
Compartilhar em outros sites

seria assim:

for i=lbound(arrayCores) to ubound(arrayCores)	on error resume next	cores = UploadRequest.Item("cores"&arrayCores(i)).Item("Value")	if err.number=0 then		coresOk = coresOk&","&cores	  end ifnextsql = "Insert Into produtos (categoria1, titulo, referencia, cores, descricao, valor, data, usuario, capa, aprovado) VALUES ('" & categoria1 & "', '" & titulo & "', '" & referencia & "', '" &coresOk& "', '" & descricao & "', '" & valor & "', '" & now & "', '" & usuario & "', '" & capa & "', '" & aprovado & "')"Conn.Execute(sql)
você alterou no formulário o name dos checkeds conforme mostrei assima colocando cores<%=rsCor("id")%>

 

Testei aqui e funcionou

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora NÃO GRAVOU NENHUMA COR!!!!

 

Esta asim meu código:

 

Fomulário:

 

<%Call abre_conexao(ConnString,Conn)Set RScor = Server.CreateObject("ADODB.Recordset") msql = "SELECT * FROM cores order by cor"RScor.Open msql, Conn,3,3%><%do while not RScor.eof%><input name="cores<%=RScor("id")%>" type="checkbox" value="<%=RSCor("id")%>" /><%=RScor("cor")%><br /><%arrayCores = arrayCores&RScor("id")RScor.movenextloop%><input type="hidden" name="arrayCores" value="<%=mid(arrayCores,2,len(arrayCores))%>" />

GRAVA OS DADOS

 

Call abre_conexao(ConnString,Conn)

 

arrayCores = UploadRequest.Item("arrayCores").Item("Value")

arrayCores = split(arrayCores,",")

for i=lbound(arrayCores) to ubound(arrayCores)

on error resume next

cores = UploadRequest.Item("cores"&arrayCores(i)).Item("Value")

if err.number=0 then

coresOk = coresOk&","&cores

end if

next

sql = "Insert Into produtos (categoria1, titulo, referencia, cores, descricao, valor, data, usuario, capa, aprovado) VALUES ('" & categoria1 & "', '" & titulo & "', '" & referencia & "', '" &coresOk& "', '" & descricao & "', '" & valor & "', '" & now & "', '" & usuario & "', '" & capa & "', '" & aprovado & "')"

Conn.Execute(sql)

 

Call fecha_conexao()

Response.Redirect "produtolist.asp"

Compartilhar este post


Link para o post
Compartilhar em outros sites

foi mal...é que escrevi o codigo aqui no forum, faltou uma virgula nessa parte ná página do form

de

arrayCores = arrayCores&RScor("id")
para

arrayCores = arrayCores&","&RScor("id")
caso ainda não funcione, postarei o modelo que fiz

Compartilhar este post


Link para o post
Compartilhar em outros sites

sai dessa cara, se vai começar com essas paradas ai não ajudo huahuaha

 

você retirou o mid do exemplo, segue como deve ficar

sql = "Insert Into produtos (categoria1, titulo, referencia, cores, descricao, valor, data, usuario, capa, aprovado) VALUES ('" & categoria1 & "', '" & titulo & "', '" & referencia & "', '" &mid(coresOk,2,len(coresOk))& "', '" & descricao & "', '" & valor & "', '" & now & "', '" & usuario & "', '" & capa & "', '" & aprovado & "')"

Compartilhar este post


Link para o post
Compartilhar em outros sites

HEheheh cada uma nao... é felicidade, HEHEHHEHEheFera essa parte finalizado certinho!Agora preciso de outra ajuda, sera que posto aqui mesmo? ou crio outro topico?è o seguinte quando vou editar agora preciso que ele liste todos od chekboxs de cores e selecione o que existem no cadastro do produto

Compartilhar este post


Link para o post
Compartilhar em outros sites

acho que podemos seguir por aqui, veja se é isso:

<%arrayCores = rsProduto("cores")marca = ""do while not rsCor.eoffor j = lbound(arrayCores) to ubound(arrayCores)if arrayCores(j) = rsCores("id")marca = "checked=""checked"""end ifnextrsCor.movenext%><input name="cores<%=rsCor("id")%>" type="checkbox" value="<%=rsCor("id")%>" <%if  marca<>"" then response.write marca end if%>/><%loop%>
esse codigo vai fazer o seguinte, você pega o id do produto e busca as cores na tabela produto, montamos o array dessas cores, fazemos um uma busca das cores na tabela cores e comparamos se é o mesmo item do array, se for armazena na variavel marca a string, no input fazemos um if, se a resposta for verdadeira escreve a variavel marca.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como sou leigo ainda esta falando assim o erro:

 

Erro de compilação do Microsoft VBScript (0x800A040E)

'loop' sem 'do'

produtoedit.asp, line 93

loop

 

MEU CÓDIGO

 

<%arrayCores = RS("cores")marca = ""Set RScores = Server.CreateObject("ADODB.Recordset") msql = "SELECT * FROM cores where id="&cint(arrayCores(i))&" "Set RScores.activeconnection = Conn 'Verifica se tem registro, se nao tiver exibe que não temRScores.Open msql, Conn,3,3If Not RScores.eof thenfor j = lbound(arrayCores) to ubound(arrayCores)If arrayCores(j) = RScores("id") thenmarca = "checked=""checked"""end ifnextRScor.movenext%><input name="cores<%=RScor("id")%>" type="checkbox" value="<%=RScor("id")%>" <%if  marca<>"" then response.write marca End If%>/><%loop%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

troque

If Not RScores.eof then
por
do while not rsCores.eof
vai dar erro aqui também, altere de:

<input name="cores<%=RScor("id")%>" type="checkbox" value="<%=RScor("id")%>" <%if  marca<>"" then response.write marca End If%>/>
para
<input name="cores<%=RScores("id")%>" type="checkbox" value="<%=RScores("id")%>" <%if  marca<>"" then response.write marca End If%>/>
mais uma coisa, você não vai selecionar pelo id da cor, você tem que trocar isso

msql = "SELECT * FROM cores where id="&cint(arrayCores(i))&" "
por

msql = "SELECT * FROM cores"

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.