Ir para conteúdo

POWERED BY:

Arquivado

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

nemtconto

insert multiplo atravez de checkbox

Recommended Posts

Olá !!

 

bom galera eh o seguinte, eu estou tentando fazer um insert q pega os valores de uma ou varias check box selecionadas... porem nao estou conseguindo, achei varios topicos de como fazer multiplos delets e tentei fazer o meu insert mas nao está saindo =/

 

<%
idOS = request ("idOS")
acao = request ("acao")
cat = request ("cat")

if acao = "" then
	Set rectipo = Server.CreateObject ("ADODB.Recordset")
	
	sql = "SELECT  * FROM jobProduto inner join cadJob on jobProduto.job=cadJob.id_cat where id_produto=" &idOS
	rectipo.open sql, conbanco
	
	
	%>
<form id="Form" name="Form" method="get" action="escolhaJob.asp">
<input name="acao" type="hidden" value="inserir" />
  <table width="252" height="72" border="0" cellpadding="0" cellspacing="0">
	<tr>
	  <td width="221" height="36" bgcolor="#A4A4E8">Selecionar todas</td>
	  <td width="31" bgcolor="#A4A4E8"><input type="checkbox" name="CheckTodos" onclick="marcarCheck();" /></td>
	</tr>
	<%
	rectipo.MoveFirst
	While not rectipo.EOF
		if cor ="#FFFFFF" then
cor = "#CCCCCC"
else
cor ="#FFFFFF"
end if
response.Write "<tr bgcolor="& cor &">"
%>
	
	  <td height="36"><%= rectipo ("tipoJob")%></td>
	  <td><input name="cat" type="checkbox" id="Marcados" value="<%= rectipo ("id_cat")%>" /></td>
	</tr>
	<%
		rectipo.MoveNext
	
	Wend %>
  </table>
  <p>
	<input type="submit" name="button" id="button" value="Enviar" />
  </p>
</form>
<%
else if acao = "inserir" then

		

end if
end if


%>

bom eu ja tentei usar a função split() para poder tranformar num array e usar for each pra loop mas dava erro no split =/ estou procurando mas nunca acho algo q realmente me ajuda, sou um pouco iniciante em asp, por favor me ajudem =]

 

preciso q os valores das checks sejam inseridas da seguinte forma num banco de dados acces...

 

job_id (aki vem o id do job) | caracteristica (id da caracteristica, valor das checks)

1 | 3

1 | 4

1 | 12

 

mais ou menos isso heheh

 

grato!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

O primeiro passo é saber se esta conseguindo montar na tela isto que colocou para nos ?

 

Se imprimir o resgate de suas checks elas te retornam isto ??

 

job_id (aki vem o id do job) | caracteristica (id da caracteristica, valor das checks)

1 | 3

1 | 4

1 | 12

 

se sim ja é meio caminho andado, se não vai dano print até conseguir este retorno e posta aqui para gente ver.!

 

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa vlw ae filipe!

 

entaum cara... seguinte, qndo eu escolho por exemplo 3 checkbox de ids 3, 8 e 25.

 

hora q eu dou response.write cad q eh o nome da variavel q eu dei (cad = request ("cad"))

na tela me aparece assim

 

3,8,25 exatamente oq eu preciso.... agora soh preciso fazer um insert onde ele pege o valor 3 e coloque no campo caracteristica logo em seguida faça o mesmo com o valor 8 e 25, entaum preciso tipo dum loop, mas nao estou conseguindo fazer isso =/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salve,

 

Não sei se o codigo que postou do seu form esta correto mas fiz uma alteração nele.

 

<%
idOS = request ("idOS")
acao = request ("acao")
cat = request ("cat")


'AQUI FOI ALTERADO
x = 0
'AQUI TERMINOU A ALTERAÇÃO

if acao = "" then
	Set rectipo = Server.CreateObject ("ADODB.Recordset")
	
	sql = "SELECT  * FROM jobProduto inner join cadJob on jobProduto.job=cadJob.id_cat where id_produto=" &idOS
	rectipo.open sql, conbanco
	
	
	%>
<form id="Form" name="Form" method="get" action="escolhaJob.asp">
<input name="acao" type="hidden" value="inserir" />
  <table width="252" height="72" border="0" cellpadding="0" cellspacing="0">
	<tr>
	  <td width="221" height="36" bgcolor="#A4A4E8">Selecionar todas</td>
	  <td width="31" bgcolor="#A4A4E8"><input type="checkbox" name="CheckTodos" onclick="marcarCheck();" /></td>
	</tr>
	<%

'AQUI FOI ALTERADO
x = x + 1
'AQUI TERMINOU A ALTERAÇÃO

	rectipo.MoveFirst
	While not rectipo.EOF
		if cor ="#FFFFFF" then
cor = "#CCCCCC"
else
cor ="#FFFFFF"
end if
response.Write "<tr bgcolor="& cor &">"
%>
	
	  <td height="36"><%= rectipo ("tipoJob")%></td>
name="chec<%=x%>"
	  <!-- Original
<td><input name="cat" type="checkbox" id="Marcados" value="<%= rectipo ("id_cat")%>" /></td>

	</tr>
	<%
		rectipo.MoveNext
	
	Wend %>
  </table>
  <p>
<!-- AQUI FOI ALTERADO -->
<input type="hidden" name="x" value="<%=(x-1)%>">
<!-- AQUI TERMINOU A ALTERACAO -->
	<input type="submit" name="button" id="button" value="Enviar" />
  </p>
</form>
<%
else if acao = "inserir" then

		

end if
end if


%>

 

 

Sua escolha Job sera assim:

 

"escolhaJob.asp"

<%			
Dim n, alpha
Dim dados, id
cont = request.form("x") ' Aqui você recebe a quantidade de checks que tem na sua pagina anterior
	for n = 0 to cont
		alpha = request.form("chec"&n)
			if alpha = "" then 	
			else	
				id = alpha 'Este é o valor que sera inserido.
					dados = ("Seu Insert") 'Seu Insert vai aqui.
						set dados =  conexao.Execute(dados)
			end if
		next
If conexao.State = 1 Then conexao.Close
Set conexao = Nothing
%>

 

O codigo não esta pronto mas Ja esta 99,9999999999999% completo.

 

Basta adaptar seu select.

 

Boa Sorte.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

aee Filipe seguinte cara eu usei o codigo com suas alterações mas tive uns probleminhas...

 

na hora q você passa esse hiden:

<!-- AQUI FOI ALTERADO -->
<input type="hidden" name="x" value="<%=(x-1)%>">
<!-- AQUI TERMINOU A ALTERACAO -->

qndo dou response.write cont q está recebendo o request ("x") ele sempre me apresenta o valor zero nao importa qntas checks eu coloque... e se eu tiro o "-1" ele sempre me aprenta "1" como valor...

 

eu tentei remanejar de forma q o contador x almenta "1" no seu valor conforme a check eh clicada mas nao tive sucesso acredito q seria mais facil por javascript mas eu num manjo mto =/

 

teria como você dar um olhadinha pra mim e me ajudar novamente!!

 

Grato!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara errei uma coisinha na hora que postei o codigo, segue codigo correto.

 

abraços

 

<%
idOS = request ("idOS")
acao = request ("acao")
cat = request ("cat")


'AQUI FOI ALTERADO
x = 0
'AQUI TERMINOU A ALTERAÇÃO

Set rectipo = Server.CreateObject ("ADODB.Recordset")
sql = "SELECT  * FROM jobProduto inner join cadJob on jobProduto.job=cadJob.id_cat where id_produto=" &idOS
rectipo.open sql, conbanco
%>

<form id="Form" name="Form" method="get" action="escolhaJob.asp">
<input name="acao" type="hidden" value="inserir" />
  <table width="252" height="72" border="0" cellpadding="0" cellspacing="0">
	<tr>
	  <td width="221" height="36" bgcolor="#A4A4E8">Selecionar todas</td>
	  <td width="31" bgcolor="#A4A4E8"><input type="checkbox" name="CheckTodos" onclick="marcarCheck();" /></td>
	</tr>
	<%
	While not rectipo.EOF
	if cor ="#FFFFFF" then
		cor = "#CCCCCC"
	else
		cor ="#FFFFFF"
	end if
	response.Write "<tr bgcolor="& cor &">"
	%>
	  <td height="36"><%= rectipo ("tipoJob")%></td>
	  <td><input name="chec<%=x%>" type="checkbox" id="Marcados" value="<%= rectipo ("id_cat")%>" /></td>
	</tr>
	<%
	 'AQUI FOI ALTERADO
	  x = x + 1
	 'AQUI TERMINOU A ALTERAÇÃO
	 rectipo.MoveNext
	Wend 
	%>
	<tr>
		<td colspan="2" align="center" valign="middle">
			<input type="hidden" name="x" value="<%=(x-1)%>">
	  <input type="submit" name="button" id="button" value="Enviar" /></td>
	</tr>
</table>
</form>

Compartilhar este post


Link para o post
Compartilhar em outros sites

e awe cara, acabei de testar com o novo post q tu fez... bom está mais compreensivel hehhe

 

porem ainda estou com duvidas na logica do codigo...=/

 

tipo na parte do insert:

<%			
Dim n, alpha
Dim dados, id
cont = request.form("x") ' Aqui você recebe a quantidade de checks que tem na sua pagina anterior
	for n = 0 to cont
		alpha = request.form("chec"&n)
			if alpha = "" then	 
			else	
				id = alpha 'Este é o valor que sera inserido.
					dados = ("Seu Insert") 'Seu Insert vai aqui.
						set dados =  conexao.Execute(dados)
			end if
		next
If conexao.State = 1 Then conexao.Close
Set conexao = Nothing
%>

qndo dou response.write cont ele sempre me traz o valor "3" independente do numero de checks ou a ordem q eu as seleciono.

 

e qnto ao nome das checks eu coloquei "get" no form pra ver os parametros... está vindo aparentemente certo "chec0" "chec1" e assim vai... porem qndo dou response.write alpha nao obtenho nenhum valor como resposta =(

 

vlw pelo help cara!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Segue codigo comentado.

 

abraços

 

<%			
'Declaro as variaveis
Dim n, alpha
Dim dados, id
'Recupero o valor total de checks existentes na pagina anterior
cont = request.form("x") ' Aqui você recebe a quantidade de checks que tem na sua pagina anterior
	'Aqui iremos varrer todos os forms retornado do form anterior (os selecionados e os não selecionados)
	for n = 0 to cont
		'alpha rescebe o valor dos forms ( se estiver selecionado retorna valor, se não retorna vazio)
		alpha = request.form("chec"&n)
			'Se não retornar vazio ele realiza as ações e insert
			if not alpha = "" then	 
					'Retorna o valor que sera inserido (value do check box)
					id = alpha 'Este é o valor que sera inserido.
					'Seu Insert 
					dados = ("Seu Insert") 'Seu Insert vai aqui.
						'Executa o Insert
						set dados =  conexao.Execute(dados)
			end if
		next
'Fecha a conexao
If conexao.State = 1 Then conexao.Close
Set conexao = Nothing
%>

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.