Foros del Web » Programando para Internet » PHP »

como validar checkbox

Estas en el tema de como validar checkbox en el foro de PHP en Foros del Web. lo que pasa es que este check debe tomar valor de S ó N; dependiendo de si esta activo o no: Código PHP:      for( ...
  #1 (permalink)  
Antiguo 21/09/2009, 16:46
Avatar de zeuzft  
Fecha de Ingreso: junio-2009
Ubicación: peru
Mensajes: 358
Antigüedad: 14 años, 10 meses
Puntos: 2
Exclamación como validar checkbox

lo que pasa es que este check debe tomar valor de S ó N; dependiendo de si esta activo o no:
Código PHP:
    for($i=0;$i<count($_SESSION['usuario']['carrito']);$i++) 
    { 
        foreach (
$_SESSION['usuario']['carrito'][$i] as $k => $v
        { 
            if(
$k=='codigo')
                
$codigo=$v;
            if(
$k=='tiposubtipo')
                
$tiposubtipo=$v;
            if(
$k=='nombre')
                
$nombre=$v;
            if(
$k=='descripcion')
                
$descripcion=$v;
            if (
$k=='mostrar')
                
$mostrar=$v;
            if(
$k=='cantidad')
                
$cant=$v;
            if(
$k=='precio')
                
$precio=$v;
            if(
$k=='subtotal')                
                
$total+=$v;
            if(
$k=='preciod')            
                
$preciod+=$v;    
            if(
$k=='subtotald')
                
$totald+=$v;
            if(
$k=='pob')
                
$precioob=$v;
            if(
$k=='independiente')
            {
                if (
independiente.checked==true){
                    
$v='S';
                    
$independiente=$v;
                    }
                if (
independiente.checked==false){
                    
$v='N';
                    
$independiente=$v;
                    }
                        echo 
"independiente---$independiente";
            }
        } 
todo el codigo parece estar bien pero; solo me toma el valor de S; es decir como si el check estuviera activo.
  #2 (permalink)  
Antiguo 21/09/2009, 17:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: como validar checkbox

No veo ningúna parte en tu código donde extraigas algún checkbox.

Saludos.
  #3 (permalink)  
Antiguo 21/09/2009, 17:02
Avatar de zeuzft  
Fecha de Ingreso: junio-2009
Ubicación: peru
Mensajes: 358
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: como validar checkbox

aqui el checkbox
Cita:
if($k=='independiente'){
echo "
<td class='texto8'><input type='checkbox' name='independiente$i'";if ($v=='S'){echo 'checked';} echo"'></input></td>
<td><a href='javascript:;' onclick=\"enviaQuery('divResultado','myajax.php?op cion=borrar_itempr&i=$i&tc='+document.form11.tc.va lue)\"><img src='images/trash.gif' border='0'></a></td></tr>";}
  #4 (permalink)  
Antiguo 21/09/2009, 20:19
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: como validar checkbox

No entiendo realmente que es lo que quieres hacer, pero ahí lo que haces tu código es que si $v es igual a S entonces marca el checkbox por defecto.

Saludos.
  #5 (permalink)  
Antiguo 22/09/2009, 15:41
Avatar de zeuzft  
Fecha de Ingreso: junio-2009
Ubicación: peru
Mensajes: 358
Antigüedad: 14 años, 10 meses
Puntos: 2
Exclamación Respuesta: como validar checkbox

si creo que no me explico bien; veamos; tengo un formulario de nueva proforma; a esa proforma yo le agrego equipos; donde pueden ir con el precio por separado o no; es decir; si el check esta activo el valor es igual a S; y aprece en forma separada; caso contrario el valor es igual a N; y todo aparecera en un solo bloque al momento de imprimir;
ahora cuando yo hago click en añadir producto - que es todo esto; como dije llama hace un envia query a myajax.php:
Código PHP:
<input name="anadir" type="button" class="boton" id="busprod" onClick="if(document.form11.tc==undefined){enviaQuery('divResultado','myajax.php?opcion=anadir_prodpr&producto='+document.form11.producto.value+'&prod_id='+document.form11.prod_id.value+'&cant='+document.form11.cantidad.value+'&precio='+document.form11.precio.value+'&descp='+document.form11.descp.value+'&tiposub='+document.form11.tiposub.value+'&muestra='+document.form11.muestra.value);} else { enviaQuery('divResultado','myajax.php?opcion=anadir_prodpr&producto='+document.form11.producto.value+'&prod_id='+document.form11.prod_id.value+'&cant='+document.form11.cantidad.value+'&precio='+document.form11.precio.value+'&tc='+document.form11.tc.value+'&descp='+document.form11.descp.value+'&tiposub='+document.form11.tiposub.value+'&muestra='+document.form11.muestra.value+'&prob='+document.form11.prob.value);} document.form11.producto.value='';document.form11.cantidad.value='1';document.form11.precio.value='0.00'; document.form11.totaldol1.focus();" value="A&ntilde;adir"  /> 
a la opcion anadir_prodpr:
Código PHP:
if($_GET['opcion']=="anadir_prodpr")
    {
    
$codigo=$_GET['prod_id'];
    
$nombre=$_GET['producto'];
    
$descripcion=$_GET['descp'];
    
$cant=$_GET['cant'];    
    
$tiposubtipo=$_GET['tiposub'];
    
$mostrar=$_GET['muestra'];
    
$precio=round($_GET['precio'],2);
    
$preciod=round($_GET['precio']/$_GET['tc'],2);
    
$subtotald=round(($cant*$preciod),2);    
    
$subtotal=round(($cant*$precio),2);        
    
$preciocompra=round($_GET['pc'],2);
    
$pob=$_GET['prob'];
    
$independiente='N';
    
$_SESSION['usuario']['carrito'][]=array('codigo'=>$codigo,'mostrar'=>$mostrar,'tiposubtipo'=>$tiposubtipo,'nombre'=>$nombre,'descripcion'=>$descripcion,'cantidad'=>$cant,'precio'=>$precio,'preciod'=>$preciod,'subtotal'=>$subtotal,'subtotald'=>$subtotald,'preciocompra'=>$preciocompra,'pob'=>$pob,'independiente'=>$independiente); 
        
mostrar_tablapr('');
        echo 
"<br />";
        
preciosproforma('');
    } 
como podras ver ahi le doy el valor a independiente por predeterminado como N; es decir que todo es un solo equipo; y de ahi me llama a la funcion mostrar tabla(''); que es esto:
Código PHP:
function mostrar_tablapr($tipo)
{
echo 
"<table width='100%' border='0' cellpadding='0' cellspacing='0'>
            <tr><th class='combo0pr'>Descripcion</th><th class='combo0pr'>Cant.</th><th class='combo0pr'>P. Unit.(S/.)</th><th class='combo0pr'>Subtotal(S/.)</th><th class='combo0pr'>Sep.</th></tr>"
;
    
$total=0;
    
$totald=0;
    for(
$i=0;$i<count($_SESSION['usuario']['carrito']);$i++) 
        { 
        foreach (
$_SESSION['usuario']['carrito'][$i] as $k => $v
            { 
            if(
$k=='codigo')
                echo
"<tr><input type='hidden' name='codigo$i' size='5' value='$v'></input>";
            if(
$k=='tiposubtipo')
                echo
"<input type='hidden' name='tiposubtipo$i' value='$v'></input>";
            if(
$k=='nombre')
                echo
"<input type='hidden' name='nombre$i' value='$v'></input>";
            if(
$k=='descripcion')
                echo
"<input type='hidden' name='descripcion$i' value='$v'></input>";
            if(
$k=='mostrar')
                echo
"<td><textarea name='mostrar$i' rows='2' cols='52' onClick=\"a=window.open('nuevo_productolipr.php?id='+codigo$i.value+'&accion=editar','buscaclie','resizable=yes, top='+parseInt(((screen.height) / 2)-200)+', width=850 ,height=430, left='+parseInt(((screen.width) / 2)-400)+', menubar=no, scrollbars=yes, status=no, titlebar=no, toolbar=no,directories=no');\">$v</textarea></td>";
            if(
$k=='cantidad')
                echo
"<td class='texto8pr'><input type='text' name='cant$i' value='$v' class='form1' size='5' onkeypress=\"javascript:var key=window.event.keyCode;if (key==13) document.form11.precio$i.focus();\" maxlength='5'></input></td>";
            if(
$k=='precio')            
                echo
"<td class='texto8pr'><input type='text' name='precio$i' class='form1' value='".number_format($v2'.'' ')."' class='form' size='6'></input></td>";
            if(
$k=='preciocompra'){
                
$preciocompra1+=$v;}
            if(
$k=='preciod'){
                
$preciod+=$v;}
            if(
$k=='subtotal')                
                {
                
$total+=$v;
                echo
"<td class='texto8pr'><input type='text' name='subtotal$i' class='form1' value='".number_format($v2'.'' ')."' class='form' size='8'></input></td>";}
            if(
$k=='independiente'){
                echo 
"
                <td class='texto8'><input type='checkbox' name='independiente$i' onClick=\"if (independiente.checked==true){($v=S);}else{($v=N);}\" value='$v'>independiente$i--$independiente--$v</input></td>
                <td><a href='javascript:;' onclick=\"enviaQuery('divResultado','myajax.php?opcion=borrar_itempr&i=$i&tc='+document.form11.tc.value)\"><img src='images/trash.gif' border='0'></a></td></tr>"
;}
            if(
$k=='subtotald')                
                {
                
$totald+=$v;
                }
            if(
$k=='pob')
                
$preciopr=$v;
            } 
        }
    echo
"<tr><td colspan='5' align='right' class='bordenaranja'><b>Total Sin IGV:  S/.".number_format(($total+$preciopr)/1.192'.'' ')."</b>&nbsp;&nbsp;&nbsp;<b>IGV:  S/.".number_format(($total+$preciopr)-($total/1.19), 2'.'' ')."</b>&nbsp;&nbsp;&nbsp;<b>Total:  S/.".number_format(($total+$preciopr), 2'.'' ')."</b></td></tr></table>";

y por ultimo viene la insercion:
Código PHP:
for($i=0;$i<count($_SESSION['usuario']['carrito']);$i++) 
    { 
        foreach (
$_SESSION['usuario']['carrito'][$i] as $k => $v
        { 
            if(
$k=='codigo')
                
$codigo=$v;
            if(
$k=='tiposubtipo')
                
$tiposubtipo=$v;
            if(
$k=='nombre')
                
$nombre=$v;
            if(
$k=='descripcion')
                
$descripcion=$v;
            if (
$k=='mostrar')
                
$mostrar=$v;
            if(
$k=='cantidad')
                
$cant=$v;
            if(
$k=='precio')
                
$precio=$v;
            if(
$k=='subtotal')                
                
$total+=$v;
            if(
$k=='preciod')            
                
$preciod+=$v;    
            if(
$k=='subtotald')
                
$totald+=$v;
            if(
$k=='pob')
                
$precioob=$v;
            if(
$k=='independiente')
                {
                if (
$independiente=='checked')
                    {
                    
$v='S';
                    
$independiente=$v;
                    }
                if (
$independiente!='checked')
                    {
                    
$v='N';
                    
$independiente=$v;
                    }
                }
        }

        
//insertar datos en detalle
        
$miconexion->consulta1("insert into detalle_proformaequipoproducto (dp_pr_id_FK,dp_prod_id_FK,dp_canti,dp_precio,dp_fecha,dp_independiente) values ('$id2','$codigo','$cant','$precio','$hoy','$independiente')");
        echo 
"ip---$independiente";
        
//fin insertar detalle
    

que seria todo eso; pero solo me toma el valor de N en ese caso

Última edición por zeuzft; 22/09/2009 a las 15:42 Razón: error en independiente de myajax.php no borre "
  #6 (permalink)  
Antiguo 23/09/2009, 16:06
Avatar de zeuzft  
Fecha de Ingreso: junio-2009
Ubicación: peru
Mensajes: 358
Antigüedad: 14 años, 10 meses
Puntos: 2
Exclamación Respuesta: como validar checkbox

tuve que crear otra funcion para ello; pero ahora no se activa el check alguna idea?
Código PHP:
echo "
<td class='texto8'><input type='checkbox' name='independiente$i'"
; if ($v=='S') {echo 'checked';} echo "onClick=\"if(independiente$i.checked==true){independiente$i.value='S';} else {independiente$i.value='N'; alert(independiente$i.value);} return true;\" onchange=\"enviaQuery('divResultado','myajax.php?opcion=cambiar_itempr&amp;i=$i&amp;nombre=independiente&amp;valor='+this.value+'&amp;tc='+document.form11.tc.value);\"/></td>
                <td><a href='javascript:;' onclick=\"enviaQuery('divResultado','myajax.php?opcion=borrar_itempr&i=$i&tc='+document.form11.tc.value)\"><img src='images/trash.gif' border='0'></a></td></tr>"

  #7 (permalink)  
Antiguo 26/09/2009, 16:41
Avatar de zeuzft  
Fecha de Ingreso: junio-2009
Ubicación: peru
Mensajes: 358
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: como validar checkbox

solucion que encontre: mover el onclick antes del checked:
Cita:
<input type='checkbox' name='independiente$i' onclick=\"if (independiente$i.checked==true) enviaQuery('divResultado','myajax.php?opcion=cambi ar_itempr&amp;i=$i&amp;nombre=independiente&amp;va lor=S&amp;tc='+document.form11.tc.value); else enviaQuery('divResultado','myajax.php?opcion=cambi ar_itempr&amp;i=$i&amp;nombre=independiente&amp;va lor=N&amp;tc='+document.form11.tc.value);\" value='".$v."'"; if ($v=='S') echo'checked'; echo "/>
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 07:09.