Ir para conteúdo

POWERED BY:

Arquivado

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

luiscarlos5046

[Resolvido] Selecionar checkbox

Recommended Posts

Olá Galera!

 

Tenho uma tabela chamada "multi_categ" onde eu tenho o ID do cliente e o ID da categoria.

A pagina a seguir é carregada de uma tabela chamada CATEGORIAS... ela monta o checkbox com o valor(id) da categoria e sua descrição.

 

Imagem Postada

 

Preciso checar se já está no BD o ID do cliente com uma categoria e marcar o box.

Eu fiz esse código, mas não está marcando o box.

 

<%
          id = Request("id")
	  set rs = cn.execute("SELECT id,categoria FROM categorias")
	  DO WHILE NOT RS.EOF
		set rsCKD = cn.execute("SELECT * FROM multi_categ")
		id_cli = rsCKD("id_cliente")
		
	  if coluna=0 then
		  response.write "<tr>"
	  end if
	  %>
	  <td width="181"><input name="id_categoria" type="checkbox" id="id_categoria" value="<%=rs("id")%>" <%if id = id_cli then response.write " checked='checked' " end if%> />
	  <label for="id_categoria" class="texto03-cnd"><%=UCASE(rs("categoria"))%></label></td>
	  <%
	  coluna=coluna+1
	  if coluna=4 then
		  response.write "</tr>"
		  coluna=0
	  end if
	  rsCKD.MoveNext
	  rs.MoveNext 
	  Loop
	  
	  rsCKD.close()
	  set rsCKD = nothing
	  rs.close()
	  set rs = nothing
%>

A cada loop que faz pra formar todas as categorias na tabela com 4 coluna, preciso checar se o ID do cliente já está lá com uma categoria e marcá-lo.

 

Luis Carlos

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem um exemplo no lab de script pode te ajudar

mas basicamente você fará um SELECT no bd pra ver se existe

e caso existe você coloca o atribto checked no checkbox

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae Colega,

 

você tem o link, procurei nas 11 paginas pelo título lá... mas não consegui ver nada com checkbox.

Afinal... aquele campo de procura que tem em baixo da pagina, tá muito ruim entender os resultados.

 

O meu exemplo acima, faz o select na tabela "multi_categ"... mas só mostra o primeiro registro e não tem como fazer a verificação se não pular para o próximo registro a cada loop que monta a lista das categorias.

 

Luis Carlos

 

Ae Galera,

 

pra fazer o checkbox eu consegui com Array... Agora ele monta a tela já com as categorias que já estão selecionadas e salvas no BD...

Agora preciso saber como faço para atualizar o BD... se já houver um ID do cliente lá, atualizar, senão adiciona.

Eu fiz vários testes, mas não consegui.

Este é meu código:

 

id_cliente		= Request.Form("id_cliente")
id_categoria	= Request.Form("id_categoria")

on error resume next

strSql = " SELECT * FROM multi_categ "
strSql = strSql & " WHERE id_cliente = "& Request.Form("id_cliente")
set rs = cn.execute(strSql)

	if not rs.eof then
		strsql = "DELETE FROM multi_categ WHERE id_cliente IN (" & id_cliente & ")"
		cn.execute(strsql) 
	end if
	
	for each item in request.Form		
			sqlInsert = ""
			sqlInsert = sqlInsert & " INSERT INTO multi_categ ( "
			sqlInsert = sqlInsert & " 					  "& id_cliente &", "
			sqlInsert = sqlInsert & " 					  "& id_categoria &" "
			sqlInsert = sqlInsert & " 					    ) "
			sqlInsert = sqlInsert & " 		  VALUES   ( "	
			sqlInsert = sqlInsert & " 		           '" & Request.Form(item) &"', "
			sqlInsert = sqlInsert & " 		           '" & Request.Form(item) &"' "
			sqlInsert = sqlInsert & " 		           ) "
			cn.execute(sqlInsert)
	next
	Set item = Nothing
 
rs.close()
set rs = nothing

Seguindo a imagem acima no post, como eu faço pra fazer o insert com vários checkbox selecionados?

Preciso verificar se já está cadastrado o ID com a categoria, ou deletar e após adicionar novamente, ou atualizar o que tem e adicionar o q não tem.

 

Luis Carlos

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha este exemplo...

 

dim fruta
cesta = Array("Jambo","Açaí","Melancia","Tamarino","Uva")
fruta=Request.Form("fruta")

response.write "<form action='trab_check.asp' method='post'>"
	response.write "<p>Selecione a sua fruta preferida:</p>"

	For x=0 To UBound(cesta) 
		response.write "<input type='checkbox' name='fruta'" 
		if fruta=cesta(x) then Response.Write("checked")
		response.write "value=" & cesta(x) & ">" & cesta(x) & "<br>"
	next
	response.write "<BR><input type='submit' value='Enviar'>"

response.write "</form>"

if fruta<>"" then
   Response.Write("<p>Sua seleção: " & fruta & "</p>")
end if
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae Xanburzum, esse método eu consegui fazer utilizando exatamente um exemplo que eu tinha aki.

Segue código completo pra quem quiser...

incluindo a parte que monta a tabela em colunas definidas pelo usuário através do loop.

<form action="clientes_categ_upd.asp" method="post" name="Form1" onSubmit="return validaADD()">
	<input type="hidden" name="id_cliente" value="<% =Request("id") %>">
<table width="736" border="0" cellpadding="0" cellspacing="2">
<%
id = Request("id")

strSql = " SELECT id_categoria FROM multi_categ WHERE id_cliente = " & Request("id")
set rsArrayRel = cn.execute(strSql)

ArrayRel = ""
if not rsArrayRel.eof then
	while not rsArrayRel.eof
		ArrayRel = ArrayRel & "[" & rsArrayRel("id_categoria") & "];"
	rsArrayRel.movenext
	wend
	rsArrayRel.close()
	set rsArrayRel = nothing
end if


set rs = cn.execute("SELECT * FROM categorias")

while not rs.eof 
	  strInstr = "[" & rs("id") & "];"
	  
	  if instr(ArrayRel,strInstr) > 0 then
		  strChecked = " checked='checked' "
	  else
		  strChecked = ""
	  end if

			if coluna=0 then
				response.write "<tr>"
			end if
			%>
			<td width="181"><input name="id_categoria" type="checkbox" id="id_categoria" value="<%=rs("id")%>" <%=strChecked%> />
			<label for="id_categoria" class="texto03-cnd"><%=rs("id")%> - <%=UCASE(rs("categoria"))%></label></td>
			<%
			coluna=coluna+1
			if coluna=4 then
				response.write "</tr>"
				coluna=0
			end if

rs.movenext
wend
rs.close()
set rs = nothing
%>
</table>
<div class="texto04-cnd" style="width:736px; padding-top:30px; text-align: center;"><input type="submit" name="Submit" value="      Alterar      "></div>
</form>

Agora preciso fazer o insert.. acho que vou ter que separar.. é um tipo de produtos relacionados... tenho uma tabela que já pode ter o ID do cliente e 1 categoria já adicionados lá.. preciso que possa atualizar e até adicionar mais categorias para o mesmo cliente...

 

Luis Carlos

* pq não consigo inserir a área de código aqui no Resposta rápida?

Compartilhar este post


Link para o post
Compartilhar em outros sites

existe um exemplo de como inserir multiplos registros usando checkbox, faça uma pesquisa no fórum que coloquei um exemplo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ae Xanburzum,

O problema não é só inserir vários registros com checkbox não.. O negócio estava um pouco mais complicado..

Eu consegui fazer em 2 frames... pode fazer tbm com DIVs...

Uma exibre as categorias adicionadas e a outra, exibe as categorias que podem ser adicionadas.

veja imagem:

 

Imagem Postada

 

A esquerda, se quizer remover, remove e atualiza lado direito... desbloqueia checkbox da categoria...

do lado direito, ficam todas as categorias, e ao carregar checa o que já está assinalado e bloqueia...

Ao adicionar mais uma categoria do lado direito, adiciona e atualiza lista do lado esquerdo.

 

* Quem quizer exemplo completo, só me pedir... são 3 arquivos

 

Luis Carlos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Legal Luis carlos...

 

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.