Ir para conteúdo

Arquivado

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

igadino

[Resolvido] Marcar varios checkbox

Recommended Posts

Pessoal como faço para marcar varios checkbox e depois do reflesh da pagina os checkbox que foram marcado continue marcado, se eu marca so um ele funciona mais se marcar dois ou tres já não funciona

 

alguém tem uma ideia de como fazer isso.

<html>
	  <head>
	  <title>Untitled Document</title>
	  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
	  </head>
	  <body>
	  <form name="form1" method="post" action="check2.asp">
	   <input name="vai" type="checkbox" id="vai" value=".com.br" <% If request("vai")=".com.br"  Then Response.Write("checked")%>>
	   <br>
	   <input name="vai" type="checkbox" id="vai" value=".com" <% If request("vai")=".com"  Then Response.Write("checked")%>>
	   <br>
	   <input name="vai" type="checkbox" id="vai" value=".net" <% If request("vai")=".net"  Then Response.Write("checked")%>>
	   <br>
	   <input name="vai" type="checkbox" id="vai" value=".org" <% If request("vai")=".org"  Then Response.Write("checked")%>>
	   <br>
	   <input type="submit" name="Submit" value="Submit">
			 </form>
	  </body>
	  </html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

recupera ele e guarda em uma session

Compartilhar este post


Link para o post
Compartilhar em outros sites

O xanburzum pode esta certo.

 

Fiz assim:

<%
response.write "oioio = " & request.form

%>
<html>
          <head>
          <title>Untitled Document</title>
          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
          </head>
          <body>
          <form name="form1" method="post" action="check2.asp">
           <input name="vai1" type="checkbox" id="vai1" value=".com.br" <% If request("vai1")=".com.br"  Then Response.Write("checked")%>>
           <br>
           <input name="vai2" type="checkbox" id="vai2" value=".com" <% If request("vai2")=".com"  Then Response.Write("checked")%>>
           <br>
           <input name="vai3" type="checkbox" id="vai3" value=".net" <% If request("vai3")=".net"  Then Response.Write("checked")%>>
           <br>
           <input name="vai4" type="checkbox" id="vai4" value=".org" <% If request("vai4")=".org"  Then Response.Write("checked")%>>
           <br>
           <input type="submit" name="Submit" value="Submit">
                         </form>
          </body>
          </html>

E funcionou. Mas não sei te atende.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha fiz esse for funciona perfeitamente. mais o problema e que os checkbox tem que ter o mesmo nome. os checkbox tem que ser abaixo conforme destacado, porque assim fica melhor para adicionar mais estensões

<% 
x=split(request("vai"),","
for i=1 to 10 
    for i2=lbound(x) to ubound(x)
        if x(i2)=i then
            xx="checked"
        else
            xx=""
   next
%>
       <input name="vai" type="checkbox" id="vai" value="<%=i%>" <%=xx%>>
       <br>
<% next %>

<input name="vai" type="checkbox" id="vai" value=".com.br">

<input name="vai" type="checkbox" id="vai" value=".com">

<input name="vai" type="checkbox" id="vai" value=".org">

<input name="vai" type="checkbox" id="vai" value=".net">

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendi muito bem, porém você poderia contornar a questão da nomenclatura assim:

 

<% 
x=split(request("vai"),","
for i=1 to 10 
    for i2=lbound(x) to ubound(x)
        if x(i2)=i then
            xx="checked"
        else
            xx=""
   next
%>
       <input name="vai<%=i%>" type="checkbox" id="vai<%=i%>" value="<%=i%>" <%=xx%>>
       <br>
<% next %>

Com o código acima você vai criar as id´s e name´s diferenciadas e pode fazer o mesmo for para recuperar as informações.

 

Como não captei bem o que você pretenre posso estra falando bobagem se estiver desconsidere.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo o nome dos checkbox não pode ser diferente o nome tem que ser igual para todos. se o nome for diferente e muito facil fazer o problema e que o nome dos checkbox tem que ser igual.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha fiz esse for funciona perfeitamente. mais o problema e que os checkbox tem que ter o mesmo nome. os checkbox tem que ser abaixo conforme destacado, porque assim fica melhor para adicionar mais estensões

<% 
x=split(request("vai"),","
for i=1 to 10 
     if cint(x(i2))=cint(i) then
            xx="checked"
            exit for
        else
            xx=""
       end if
  next
%>
       <input name="vai" type="checkbox" id="vai" value="<%=i%>" <%=xx%>>
       <br>
<% next %>

<input name="vai" type="checkbox" id="vai" value=".com.br">

<input name="vai" type="checkbox" id="vai" value=".com">

<input name="vai" type="checkbox" id="vai" value=".org">

<input name="vai" type="checkbox" id="vai" value=".net">

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

olha este exemplo

 

if qtd_produtos = "" then
Response.write("erro..."
response.redirect("outra_pagina.asp")
else
qtd_produtos = split(Request.Form("qtd_produtos"),",")
if qtd_produtos = ""
produtos= Split(Request.Form("produtos"), ",")

For i = 1 To Request.Form("produtos").Count

Response.write request.form("produtos")(i)&"<BR>" & request.form("qtd_produtos")(i)&"<BR>"
SQL = "INSERT INTO lista (lista_prodID,lista_quant) Values ('"&request.form("produtos")(i)&"','"&request.form("qtd_produtos")(i)&"')"

Compartilhar este post


Link para o post
Compartilhar em outros sites

igadino,

 

Desculpe se sugeri algo que não lhe ajudou. Como não consigo saber o que vai na sua cabeça as vezes querendo ajudar acabamos atrapalhando.

 

Amigo o nome dos checkbox não pode ser diferente o nome tem que ser igual para todos. se o nome for diferente e muito facil fazer o problema e que o nome dos checkbox tem que ser igual.

 

Qual a justificativa: para ter de ser igual?

 

O problema é o seguinte se os id´s e name´s forem igual o conteúdo de request("vai") fica igual: .com.br, .com, .net, .org.

Veja:

<%
response.write " vai1 = " &  request.form("vai")& "<br>"
%>
Dai não vai entrar no If request("vai")=".com.br" pois o contéudo de request("vai") é: .com.br, .com, .net, .org.

 

 

Não me leve a mal mas na minha humilde opinião, como você esta gerando o checkbox com um for eu geraria com id´s deferentes como no exemplo que postei acima. E usaria um for para recuperar os valores.

Compartilhar este post


Link para o post
Compartilhar em outros sites

ou você pode gerar com nomes iguais e depois dar um SPLIT neles para separar os que foram selecionados

 

 

 

check= Split(Request.Form("checkbox"), ",")

For i = 1 To Request.Form("checkbox").Count

Response.write request.form("checkbox")(i)&"<BR>" & request.form("check")(i)&"<BR>"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia galera, eu montei um código em javascript para atender justamente a isso, sem precisar ter nome "igual"

 

<script language="javascript">
function _selecao(total,g){
var i;
var g;
var total;
grupo = document.getElementById('grupo'+g).checked;

if(grupo==true){

for(i=1; i<total; i++)
{
	//alert('tipo'+g+'-'+i);
    document.getElementById('tipo'+g+'-'+i).checked = true;
}
}
else{
for(i=1; i<total; i++)
{
	//alert('tipo'+g+'-'+i);
    document.getElementById('tipo'+g+'-'+i).checked = false;
}
}
}


function _grupo(total,g){
var i;

for(i=1;i<=total;i++){
	//alert(i);
	//alert('tipo'+g+'-'+i);
	//alert(document.getElementById('tipo'+g+'-'+i).checked);
	if(document.getElementById('tipo'+g+'-'+i).checked==true){
	ativar = true;
	acao_grupo(ativar,g);
	return false;
	}else{
	ativar = false;
	}
}
//alert(ativar);
acao_grupo(ativar,g);
}

function acao_grupo(a,g){
if(a==true){
document.getElementById('grupo'+g).checked = true;
}else{
document.getElementById('grupo'+g).checked = false;
}
}

function mudar_valor(valor){
//alert('checked = '+valor.checked);
//alert('valor = '+valor.value);
if(valor.checked==true){
valor.value = 'false';
}else{
valor.value = 'true';
}
}
</script>

<input onclick="_selecao('3','1');" type="checkbox" name="C1" id="grupo1" value="ON"><br>
<input onclick="_grupo('2','1');mudar_valor(this);" type="checkbox" name="C2" id="tipo1-1" value="true">TIPO1 - 1<br>
<input onclick="_grupo('2','1');mudar_valor(this);" type="checkbox" name="C3" id="tipo1-2" value="true">TIPO1 - 2<br><br>

<input onclick="_selecao('3','2');" type="checkbox" name="C1" id="grupo2" value="ON" checked><br>
<input onclick="_grupo('2','2');" type="checkbox" name="C2" id="tipo2-1" value="ON" checked>TIPO2 - 1<br>
<input onclick="_grupo('2','2');" type="checkbox" name="C3" id="tipo2-2" value="ON">TIPO2 - 2

O legal deste código é que você pode selecionar vários ao mesmo tempo ou apenas um de um grupo. Altere aí pro que você precisar.

 

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

igadino,

 

Com disse com name igual o contéudo do request fica: ".com.br, .com, .net, .org."

Então não têm como você utilizar If request("vai")=".com.br".

 

Uma forma de contorna isto seria usar o instr

 

Tomando como base o código que você postou no início fiz este exemplo a seguir. Funciona mas fica meio que uma gambiarra. E não sei se vai ajudá-lo mas segue o exemplo:

 

<%
response.write "oioio = " & request.form & "<br>"

sVai = split(request.form("vai"),",")

for i = 0 to ubound(sVai)
	sVai(i) = trim(sVai(i))
next

sVai = join(sVai,",")
sVai = "," & replace(sVai,",",",") & ","

response.write " svai = " &  sVai & "<br>"
response.write " sVai = " &  sVai &  "<br>" 

           %>
<html>
          <head>
          <title>Untitled Document</title>
          <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
          </head>
          <body>
          <form name="form1" method="post" action="check2.asp">
           <input name="vai" type="checkbox" id="vai" value=".com.br" <% If instr(sVai,",.com.br,") > 0  Then Response.Write("checked")%>>.com.br</>
           <br>
           <input name="vai" type="checkbox" id="vai" value=".com" <% If instr(sVai,",.com,") > 0  Then Response.Write("checked")%>>.com</>
           <br>
           <input name="vai" type="checkbox" id="vai" value=".net" <% If instr(sVai,",.net,") > 0  Then Response.Write("checked")%>>.net</>
           <br>
           <input name="vai" type="checkbox" id="vai" value=".org" <% If instr(sVai,",.org,") > 0  Then Response.Write("checked")%>>.org</>
           <br>
           <input type="submit" name="Submit" value="Submit">
                         </form>
          </body>
          </html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

apenas complementando, o uso do Instr

link

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.