Foros del Web » Programando para Internet » ASP Clásico »

como recoger el valor de un checkbox que tienen varios registros?

Estas en el tema de como recoger el valor de un checkbox que tienen varios registros? en el foro de ASP Clásico en Foros del Web. Buenos días, Tengo esta aplicación de facturación y necesito cambiar el botón Facturar que sale después de cada registro por un checkbox que lo he ...
  #1 (permalink)  
Antiguo 20/03/2006, 10:08
 
Fecha de Ingreso: octubre-2005
Mensajes: 85
Antigüedad: 18 años, 7 meses
Puntos: 0
Mensaje como recoger el valor de un checkbox que tienen varios registros?

Buenos días,

Tengo esta aplicación de facturación y necesito cambiar el botón Facturar que sale después de cada registro por un checkbox que lo he puesto como ejemplo, la verdad no se como enviar el valor del checkbox para hacer efectiva la facturación solo de los checkbox que esten señalados; alguien me puede dar una idea, alguien ha hecho esto?.
Cuando envio el botón lo que hago es actualizar recibiendo el id del registro a facturar, pero si el usuario manda varios checkbox al mismo tiempo como los puedo recibir?

Mi código con el botón es este:
opc=Request("opcm")
idp=Request("id")
factv=Request("facturado")
fecha_act=Date
ruc=Request("ruc")

If (opc=1) Then

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DSN=gp"
sSQL="Update tbl_pn_hoja_ruta Set facturado='"&factv&"', fecha_act='"&fecha_act&"' Where id=" & idp

set RS = Conn.Execute(sSQL)


  #2 (permalink)  
Antiguo 20/03/2006, 10:15
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 4 meses
Puntos: 98
<input type="checkbox" value="1" name="facturar" id="facturar" />

if request.form("facturar") = "1" then
'EL checkbox está seleccionado
end if
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 20/03/2006, 11:45
 
Fecha de Ingreso: octubre-2005
Mensajes: 85
Antigüedad: 18 años, 7 meses
Puntos: 0
muchas gracias u_goldman, pero tengo un form dentro de mi aplicación para sacar los reportes en la misma página, así que cuando el cliente elige facturar lo mando por una función javascript a otra página, tal vés viendo el código me entiendas, el problema es que no sé como enviar los distintos valores del checkbox a través de esta función u de otra manera.

Código:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Gonzalez Peñaherrera</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="template_css.css" rel="stylesheet" type="text/css">
<link href="admin_login.css" rel="stylesheet" type="text/css"></head>
<script language="JavaScript" type="text/JavaScript">
<!--
function prueba(idv,factv,opcg,ruc) { 
   
    window.open("factpn.asp?facturado="+factv+"&opcm="+opcg+"&ruc="+ruc+"&id="+idv,tarjet="_top")
}

//-->
</script>

<script language="JavaScript" type="text/JavaScript">
<!--
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' debe contener una dirección e-mail.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' debe contener un número.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' debe contener un número entre'+min+' y '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' es requerido.\n'; }
  } if (errors) alert('Los siguientes datos son requeridos:\n'+errors);
  document.MM_returnValue = (errors == '');
}
//-->
</script>

<body background="fondo_int.gif">
<%
	session.lcid=1053
    buscarc=Request("buscarc") 
	opc=Request("opc")
	facturadoll=Request("facturado")
		
    Dim Conn, Tabla
	Set Conn = Server.CreateObject("ADODB.Connection") 	
	Conn.Open "DSN=gp"
	Set Tabla=Server.CreateObject("ADODB.recordset")	
	Temp = "Select * from tbl_persona_natural order by pn_nombres ASC"
    Tabla.Open Temp, Conn 
	
%>

<p>&nbsp;</p>
<p>&nbsp;</p><p>&nbsp;</p> 
	<table width="395" border="1" align="center" cellpadding="0" cellspacing="0" class="adminform">
  <tr>
    <td><table width="200" height="150" border="0" align="center" cellpadding="0" cellspacing="0">
              <tr> 
                <td >
				<div align="center"><IMG src="h_gp.gif" width="198" height="130" border="0" alt=""></div>
				<br>
				<div align="center" class="menuline"> <strong>Consulta de Rutas por Facturar - Persona Natural</strong></div></td>
              </tr>
              <tr> 
                <td><table width="100%" border="0" align="center" cellpadding="0" cellspacing="0" >
                    <tr> 
                <td align="center"><br>
                        <img src="images/addedit.png" width="48" height="48" border="0"> 
                      </td>
              </tr>
           </table>
		   
		   </td>
           </tr>
              
            </table> 
						
            <table width="200" border="0" align="center" cellpadding="0" cellspacing="0">
              <tr> 
                
                <td>
				
				<form name="form1" method="post" action="rutas_facturacion.asp">
                    <input name="acce" type="hidden" id="acce" value="ing123">
                    <div align="center"> 
                      <input class="botones2" type="submit" name="Submit32" value="Menú Facturación">
                    </div>
                  </form></td>
				  <td>
				
				<form name="form3" method="post" action="verif2.asp">
                    <input name="ops" type="hidden" id="ops2" value="43">
                    <div align="center"> 
                      <input class="botones2" type="submit" name="Submit32" value="Menú Principal">
                    </div>
                  </form></td>
               
              </tr>
            </table>
			
			<td ><div align="center" class="menuline"><strong>Consulta de Rutas por Facturar Persona Natural</strong></div>
			<form name="form2" method="post" action="report_hojaruta_pn_fact.asp" onSubmit="MM_validateForm('buscarc','','R');return document.MM_returnValue">
        <table width="388" border="0" align="center" cellpadding="0" cellspacing="0">
          <tr>
            <td width="366"><div align="center" class="formtxt">
                <input name="acce2" type="hidden" id="acce4" value="<% Response.Write acce  %>">
                Seleccione del:
                <select name="buscarc" class="cmb" id="buscarc">
				
                  <option value="">---Listado---</option>
                  <%			  
				 
				  DO WHILE NOT  Tabla.Eof
					 apellidos = Tabla ("pn_apellidos")
					 nombres = Tabla ("pn_nombres")
					 codigo = Tabla ("pn_no_doc_identidad")
					 If (buscarc = codigo) Then
					  Response.Write "<option value='"&codigo&"' selected>"&nombres&" "&apellidos&"</option>"
					 else
					  Response.Write "<option value='"&codigo&"'>"&nombres&" "&apellidos&"</option>"
					 end If
					 Tabla.MoveNext
				  LOOP
				  
				  %>
                </select>
				<input name="opc" type="hidden" id="opc" value="1">
        		 <input class="botones" type="submit" name="Submit23" value="Buscar">
            </div></td>
          </tr>
          <tr>
            <td class="cmb"> 
              <%
			    If (opc=1) Then
							
				
				Set ConexionBD = Server.CreateObject("ADOdb.Connection") 
				ConexionBD.Open "DSN=gp" 
				Set Familias = ConexionBD.Execute("select * from tbl_persona_natural WHERE pn_no_doc_identidad = '" & buscarc & "'") 
    			If Not Familias.EOF Then 
				Response.Write("<br>")
				Response.Write("<TABLE Border='0' align='center' width='366'>")
				Response.Write("<TR><TD>") 	
       			Response.Write("<div class='formtxt'>Apellidos : " & Familias("pn_apellidos") & "<BR>" & " </div>")
				Response.Write("<div class='formtxt'>Nombres: " & Familias("pn_nombres") & "<BR>" & " </div>")   
       			Response.Write("<div class='formtxt'>I.D: " & Familias("pn_no_doc_identidad") & "<BR>" & " </div>")                 
				Response.Write("</TD><TD>") 
          		Response.Write("</TABLE>")
				Response.Write("<br>") 
			    
				End If 
				
				
				 
    			Set Articulos = ConexionBD.Execute("select * from tbl_pn_hoja_ruta WHERE pn_no_doc_identidad = '" & buscarc & "' and facturado like 'No' order by fecha ASC") 
					
    			If Articulos.EOF Then 
					Response.Write("<br>")
       				Response.Write("<p class='formtxtmsg'>No hay rutas registradas</p>") 
    			Else 
       				Articulos.MoveFirst 
				%>
					
				<div class="login">
				<div class="form-block"> 
				
       			<%Do While Not Articulos.EOF %>
				
          		<div>Fecha: <%=Articulos("fecha")%> </div>
				<div>Abogado: <%=Articulos("id_abogado")%> </div>
				<div>Tramite: <%=Articulos("tramite") %> </div>		
				<div>Horas:   <%=Articulos("no_horas") %> </div>
          		<div>Minutos: <%=Articulos("no_minutos") %> </div>
				<div>Facturado: <%=Articulos("facturado") %></div>
                      <% idr=Articulos("id")%>
                      <% 
				  if  (Articulos("facturado")="Si") then
				        factv="No"
				  Else
				        factv="Si"
				  End If
				  opcm=1
				%>
                    </p>
                <table width="330" border="2">
            		        <td width="50"> 
                         
                          <input type="button" name="Submit2" value="Facturar" onClick="prueba('<%=idr%>','<%=factv%>','<%=opcm%>','<%=Familias("pn_no_doc_identidad")%>')"></td>
				<td width="80">	
				</td>	
          		</tr>
				</table>


				<%
				totalh=Articulos("no_horas")+totalh
                totalm=Articulos("no_minutos")+totalm
					If(totalm>=60) Then
						residuo=Int(totalm/60)
						var=totalm Mod 60
						
					Else
						var=totalm
						
					End If
          			Articulos.MoveNext 
					Response.Write("<hr>")
       			Loop 
                 totalh=totalh+residuo                            
				Response.Write("<div align='left' >Total de Horas: " & totalh & "<br>"  & " </div>"  & "Total de minutos: " & var) 
				%>
				
				</div> 
				</div>				
        		
				<%
    			End If 
				opcm=2
				%>
				<table width="330" border="2"  align="center">
			          <td width="178"> 
                          
                          <input type="button" name="Submit2" value="Facturar todo" onClick="prueba('<%=idr%>','<%=factv%>','<%=opcm%>','<%=Familias("pn_no_doc_identidad")%>')"></td>
					
          		</tr>
				</table>
				<%
				End If
				
				%>
                
              </td>
          </tr>
        </table>
		<p>&nbsp;</p>
        <div align="center"><input class="botones" type="submit" name="Submit" value="Imprimir" onClick="javascript:print()"></div>
    </form></td>
  </tr>
  
</table>

</body>
</html>
  #4 (permalink)  
Antiguo 20/03/2006, 13:52
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 4 meses
Puntos: 98
Las funciones que yo veo, son de validación, si haces el request.form en la página que recibe, lo podrás evaluar sin problemas.

[EDIT]
Ya ví un poco mejor, al parecer mandas el dato al popup no?
Veo además que comprimiste el código javascript, o lo hizo el dreamweaver por ti, así es súmamente difícil que me den ganas de sentarme a analizarlo, hazte un ciclo en el popup y ve que valor te está llegando de ese checkbox.

Código:
for each item in request.querystring
  response.write(item & "= " & request.querystring(item) & "<br>" )
next
[/EDIT]

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:11.