Ver Mensaje Individual
  #8 (permalink)  
Antiguo 08/11/2007, 16:33
Avatar de Shiryu_Libra
Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 1 mes
Puntos: 88
Re: duda en select haciendo do while

Gaby
veamos, tuve un tiempito libre en la oficina e hice esto... espero te ayude

funcionamiento, una sola pagina, creo que asi es como ultimamente haz estado realizando tus codigos, asi que veamos....

funcion que se encargara de recuperar todos los datos del formulario
NOTA:
Código PHP:
<%
sub ingresardatos()

'declaracion de variables
    l=0
    k=0
    dim privilegio()
    dim estado()

    '
consultamos todos los valores que vienen del formulario
    
'usaremos el for, hasta el final del formulario
    For each elemento in request.form

        '
tomamos el valor
        dato
=request.Form(elemento)

        
'preguntamos si es un ID
        if instr(elemento,"idprivilegio")<>0 then

            '
redimensionamos dinamicamente el arreglo
            
'sin borrar lo capturado una vuelta antes
            redim preserve privilegio(k)

            '
grabamos en el arreglo el dato
            privilegio
(k)=dato

            
'aumentamos el contador de este arreglo
            k=k+1

        '
si no era IDentonces Status
        
elseif instr(elemento,"status")<>0 then

            
'tambien lo redimensionamos, al igual que el anterior
            redim preserve estado(l)

            '
guardamos
            estado
(l)=dato

            
'aumentamos contador
            l=l+1
        end if
    next

    '
hacemos el recorrido de todos los datos
    
for a=0 to ubound(privilegio)

    
'Construimos la sentencia con los valores de los arreglos
        sql="UPDATE tabla "&_
            " SET campo = '"&estado(a)&"'"&_
            " WHERE idcampo = "&privilegio(a)

    '
Ejecutamos la sentenciainsertando los datos
        response
.Write "1.- "&SQL &"<br/>"
        
con.execute(sql)
    
next
end sub

if request.QueryString("vuelta")=1 then
    ingresardatos
end 
if
%> 
Ahora bien, aki esta el script que recorrera todo el formulario para verificar que tus selects, lleven algun valor.... en caso de que te falte alguno, no se enviara nada y pondra el foco sobre el que falte

Código PHP:
<script>
function 
verificar(frm){
formulario=document.getElementById(frm)
ret=true;
for ( var 
i=0;i<formulario.elements.length;i++ ){
    if ( 
formulario.elements[i].value=="0" ){
        
alert("Elija un valor para "+formulario.elements[i].name);
        
ret=false;
        
formulario.elements[i].focus();
        break;
        }
    }
return 
ret;
}
//Final de la funcion
</script> 
y ahora, la construccion de los selects por cada usuario, esta seccion es mejor manejarla de forma individual, una parte por el el script de verificacion y otro por la recepcion de datos

Código PHP:
<form id="form" name="form" action="evitar_salir.asp?vuelta=1" method="post" onSubmit="return verificar(this.id);">
<
table>
<%
'sSQL = "Select * From DS_Privilegios Order by privilegio_nombre"
'
set rs cnn.execute(sSQL)
'do while not rs.eof
'
i+1
'PrivNombre = rs("privilegio_nombre")
%>
<tr><td><%'
=PrivNombre%>
    <
input name="idprivilegio<%=i%>" id="idprivilegio<%=i%>" type="hidden" value="<%=rs("privilegio_id")%>" /></td>
<
td class="tdselrestnd">
    <
select name="status<%=i%>" id="status<%=i%>" class="selrestnd" >
        <
option value="0">Opcion</option>
        <
option value="R">Restringida</option>
        <
option value="A">Autorizada</option>
    </
select></td>
</
tr>
<%
rs.movenext
loop
rs
.close%></table>
<
input type="submit" value="Enviar" />
</
form
espero te sirva de guia...
que me habra faltado
__________________
"Eres parte del problema, parte de la solucion o parte del paisaje"
Un Saludo desde Desierto de Altar, Sonora, MX.
Shiryu_libra