Ir para conteúdo

POWERED BY:

Arquivado

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

Jow Xavier

[Resolvido] pegar valor de uma table dentro de um checkbox

Recommended Posts

Boa tarde galera tenho uma tabela no banco de dados q contém um campo box que tem como registro nome, e um campo box_email q eu preciso ter como registro o email do box ... preciso ter essas duas informações nome e email no meu banco de dados como eu faço isso:

aki eu pego o nome

<input name="box" type="checkbox" value="<%=tab("nome")%>"/>
assim, consigo pegar o email
<input name="box_email" type="checkbox" value="<%=tab("email")%>"/>
... mas preciso pegar os dois campos com um checkbox ... tentei assim: mas não consegui:

<input name="box" type="checkbox" value="<%=tab("nome")%>"/>
<input name="box_email" type="hidden" value="<%=tab("email")%>"/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

para salvar no banco melhor usar o type="text" mais o que seria "pegar os dois campos com um checkbox", você fala o ID ou o TEXTO?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então cara é pq o usuário deve escolher quem ele vai convidar para algúm evento está salavando o nome precisaria q salvasse o email dele tbm ... eu precisaria pegar o valor do email tbm dentro do mesmo checkbox ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

ao invés de salvar o nome e o email dele, pq não coloca o ID dele, cria uma coluna no banco ID_Usuario e salva o ID dele assim você tem qualquer informação posterior dele, é melhor, pois eu iria te indicar para colocar o nome e o e-mail dentro do mesmo checkbox separados por virgula e depois separar como se fosse um array através de uma função split, ai iria ser mais difícil.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Através do ID seria melhor mesmo, você nem precisaria usar dois campos como fez assim.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas eu teria todas as informações do usuário mesmo os dados estando em outra tabela, como ??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então eu resgato o ID q foi passado ... e comparo na tabela onde eu tenho os dados do usuário, e armazeno o email dele em uma variável ... assim:

 

id=request.form("id")

sql = "SELECT * FROM membros WHERE id = "&id
set tab = cnn.execute(sql)
box_email= tab("email")

Isso funciona perfeitamente qd envio um email para o email cadastrado, mas só funciona qd é para apenas um email ... Pois preciso q enviasse para mais de um email escolhido ... Já tentei usar um while e ñ funcionou alguém pode me ajudar ??

 

Aparece este erro:

ADODB.Field error '800a0bcd'

 

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

 

/thatto/jobs/compromissos/inserir_compromissos.asp, line 67

Esta é a linha 67 box_email= tab("email")

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom galera alterei o meu script e estou conseguindo enviar email .. só ñ estou conseguindo enviar qd for para mais de um email cadastrado ... estou usando uma função split ...

Msg = "<style type=""text/css"">" & vbcr
Msg = Msg & "</style>" & vbcr
Msg = Msg & "<table width=""600"" border=""1"" cellspacing=""2"" cellpadding=""2"" bordercolor=""#666666"" align=""center"">" & vbcr

Msg = Msg & "<tr align=""center"" bgcolor=""#CCCCCC"">" & vbcr
Msg = Msg & "<td colspan=""4""><b><font size=""2"">Convite para Compromisso</font></b><br>" & vbcr
Msg = Msg & "</td>" & vbcr
Msg = Msg & "</tr>" & vbcr

Msg = Msg & "<tr bgcolor=""#CCCCCC"">" & vbcr
Msg = Msg & "<td><b>Cliente</b></td>" & vbcr
Msg = Msg & "<td colspan=""3"">" & cliente & "</td>" & vbcr
Msg = Msg & "</tr>" & vbcr

Msg = Msg & "<tr>" & vbcr
Msg = Msg & "<td><b>Detalhe</b></td>" & vbcr
Msg = Msg & "<td colspan=""3"">" & detalhe & "</td>" & vbcr
Msg = Msg & "</tr>" & vbcr

Msg = Msg & "<tr bgcolor=""#CCCCCC"">" & vbcr
Msg = Msg & "<td><b>Local</b></td>" & vbcr
Msg = Msg & "<td colspan=""3"">" & local & "</td>" & vbcr
Msg = Msg & "</tr>" & vbcr

Msg = Msg & "<tr>" & vbcr
Msg = Msg & "<td><b>Data / Hora</b></td>" & vbcr
Msg = Msg & "<td colspan=""3"">" & data & "</td>" & vbcr
Msg = Msg & "<td colspan=""3"">" & hora & "</td>" & vbcr
Msg = Msg & "</tr>" & vbcr

Msg = Msg & "<tr bgcolor=""#CCCCCC"">" & vbcr
Msg = Msg & "<td><b>Participantes</b></td>" & vbcr
Msg = Msg & "<td colspan=""3"">" & box & "</td>" & vbcr
Msg = Msg & "</tr>" & vbcr

sql = "SELECT * FROM membros WHERE nome = '"&box&"' "
set tab = cnn.execute(sql)
strP= tab("email")



ArrP=split( strP , "," ) 'No caso coloquei virgula, pois o separador  este, caso seja outro basta mudara para o desejado.

'Faz o loop para enviar at que dispare todos os selecionados.
for i = 0 to UBound(ArrP)
Set objmail = Server.CreateObject("CDONTS.NewMail") 

email = Session("email")
objMail.From = email   
objMail.To = ArrP(i)
objMail.Cc = ""
objMail.Bcc = "" 'caso queira cpia oculta

objMail.Subject = request.form("cliente") 'titulo da mensagem
sHTML = sHTML & "<html><meta http-equiv=""content-type"" content=""text/html; charset=utf-8"">"
sHTML = sHTML & "<head>"
sHTML = sHTML & "<title>Thatto Interativa</title>" 
sHTML = sHTML & "</head>"
sHTML = sHTML & "<body leftmargin=""0"" topmargin=""0"" rightmargin=""0"" bottommargin=""0"" bgcolor="""">"
sHTML = sHTML & Msg 'corpo da mensagem do formulário
sHTML = sHTML & "</body>"
sHTML = sHTML & "</html>"

objMail.MailFormat = 0 
objMail.BodyFormat = 0 
objMail.body = sHTML

objMail.Send
sHTML = ""

On Error Resume Next
set objMail = Nothing

if Err <> 0 Then
Response.Write "Foi encontrado um erro (" & Err.Description & ")."
Response.End
End if

'Fim loop.
next

'Gera alerta de envio ao fim do cdigo.
response.Write("<font face='verdana' size='1'><br>E-mails enviado com sucesso!</font><br>")
response.Write("<font face='verdana' size='1'>Para: "&box&".</font>") %>
Alguém pode me ajudar ???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguma mensagem de erro agora? Remova a linha On Error Resume Next para ver se há erros.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara se eu envio para mais de um destinatário dá esse

ADODB.Field error '800a0bcd'

 

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

 

/thatto/jobs/compromissos/inserir_compromissos.asp, line 97

 

linha 97: strP= tab("email")

 

... Se for apenas para um destinatário o email é enviado sem problemas !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara eu até usei um

If not tab.EOF Then
while not tab.EOF
strP= tab("email")
tab.Movenext
wend 
else
end if
... o erro sumiu e mostra q o email foi enviado com sucesso, mas ñ envia qd é pra mais de um destino

Compartilhar este post


Link para o post
Compartilhar em outros sites

onde esta o send?

 

tem qeu por ele dentro do loop tambem

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara fiz isso:

If not tab.EOF Then
while not tab.EOF
strP= tab("email")
objMail.Send
sHTML = ""
tab.Movenext
wend 
else
end if
e continua ñ enviando email para mais de um destino

 

onde esta o send?

Está dentro do for
objMail.Send
sHTML = ""

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que entendi do seu código, você deve substituir o código abaixo

sql = "SELECT * FROM membros WHERE nome = '"&box&"' "
set tab = cnn.execute(sql)
strP= tab("email")

Por esse:

sql = "SELECT * FROM membros WHERE nome = '"&box&"' "
set tab = cnn.execute(sql)
if not tab.eof then
	while not tab.eof
		if len(strP) = 0 then
			strP= tab("email")
		else
			strP = strP & "," & tab("email")
		end if
		tab.movenext
	wend
end if
tab.close
set tab = nothing

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não funcionou cara e nem deu erro simplesmente continua ñ enviando ... Mandei imprimir na tela o valor do meu campo email e só ñ funciona com mais de um destino ... se eu passar o valor do email dentro do checkbox funcionaria normalmente, mas preciso passar o valor do nome, pois depois preciso do nome correspondente ao email ... então deveria funcionar, pois o email só está exibindo qd for correspondente ao email ... O meu campo Box correponde ao nome passado dentro do checkbox e mostra assim na tela Nome1, Nome2 .. Fazendo assim:

strP= box
... Pq qd faço assim: ñ funciona
sql = "SELECT * FROM membros WHERE nome = '"&box&"' "

set tab = cnn.execute(sql)

strP= tab("email")

Compartilhar este post


Link para o post
Compartilhar em outros sites

a parte do email tem que esta dentro do loop e nao so o send

Compartilhar este post


Link para o post
Compartilhar em outros sites

sim

 

eles vao separados por virgula

 

ai voce usa o SPLIT para quebrar em array

 

depois usa um FOR para fazer o que quiser com cada valor

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz assim no formulário, qd seleciono

<input name="box" type="checkbox" value="<%=tab("nome")%>"/>
					  <input name="box_email" type="hidden" value="<%=tab("email")%>"/>
Agora está enviando o email para todo mundo ...

Compartilhar este post


Link para o post
Compartilhar em outros sites

entao funcionou como quer?

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.