Foros del Web » Programando para Internet » PHP »

Probelmas con un checkbox

Estas en el tema de Probelmas con un checkbox en el foro de PHP en Foros del Web. hola, tengo el siguiente codigo en un solo fichero .php Código PHP: $id = $_SESSION['id']; if (isset($_POST['share'])) {              if($_POST['share']=="ON"){                  $sql = "UPDATE usuarios SET comparte = 1 WHERE id = $id";              $res = mysql_query($sql);              $_SESSION['comparte'] = 1;                  echo "cambiado a si compartir";             }             if($_POST['share']=="OFF"){                  $sql = "UPDATE usuarios SET comparte = 0 WHERE id = $id";              $res = mysql_query($sql);              $_SESSION['comparte'] = 0;                  echo "cambiado a NO compartir"; ...
  #1 (permalink)  
Antiguo 10/02/2010, 14:24
 
Fecha de Ingreso: febrero-2009
Mensajes: 580
Antigüedad: 15 años, 2 meses
Puntos: 13
Probelmas con un checkbox

hola,

tengo el siguiente codigo en un solo fichero .php

Código PHP:
$id = $_SESSION['id'];
if (isset($_POST['share'])) { 

            if($_POST['share']=="ON"){
                 $sql = "UPDATE usuarios SET comparte = 1 WHERE id = $id";
             $res = mysql_query($sql);
             $_SESSION['comparte'] = 1;
                 echo "cambiado a si compartir";
            }
            if($_POST['share']=="OFF"){
                 $sql = "UPDATE usuarios SET comparte = 0 WHERE id = $id";
             $res = mysql_query($sql);
             $_SESSION['comparte'] = 0;
                 echo "cambiado a NO compartir";
            }

    
}







?>

<div id="csc"><!--the_box-->
 <span class="tr"></span>


<div class="cssbox">  <div class="cssbox_head">  <h2>SETTINGS</h2> <hr /><br /> </div>  <div class="cssbox_body">

  


<form name = "profile" method="post" action="javascript:FAjax('./php/profile.php','contenidos','share='+document.getElementById('share').value,'POST');">
  
     <label>Select this option if you don't mind if other users find your links 
     <? if($_SESSION['comparte']==1){
         echo 
"<input type='checkbox' name='share' id='share' value='ON'>";    

        }
     else{
         echo 
"<input type='checkbox' name='share' id='share' value='OFF'>";    
        
                }
        
?>
     </label>

<INPUT name="submit" type="submit" value="Enviar">
   
   
</form>

</div></div>


El probelma es que marque o no el checkbox, siempre me dice ''cambiado a si compartir'' y el estado del checkbox siempre esta deshabilitado despues del post....


alguna idea?
__________________
¿ya conoces la red social de cocina? descubre y comparte recetas de cocina
TONIWEB, un programador web freelance
  #2 (permalink)  
Antiguo 10/02/2010, 14:33
Avatar de carmagedon  
Fecha de Ingreso: junio-2005
Ubicación: Argentina
Mensajes: 794
Antigüedad: 18 años, 10 meses
Puntos: 23
Respuesta: Probelmas con un checkbox

Hola, que tal?

Antes que nada, en vez de utilizar etiqueta <?, utiliza ésta <?php.
Luego, probaste con hacer un ALERT a la variable para ver que te devuelve?

Código PHP:
Ver original
  1. <?php
  2. $id = $_SESSION['id'];
  3. if (isset($_POST['share'])) {
  4.  
  5.            echo "<script language='javascript'>alert('".alert($_POST['share'])."');</script>";
  6.  
  7.             if($_POST['share']=="ON"){
  8.                  $sql = "UPDATE usuarios SET comparte = '1' WHERE id = '".$id."'";
  9.                  $res = mysql_query($sql);
  10.                  $_SESSION['comparte'] = 1;
  11.                  echo "cambiado a si compartir";
  12.             }
  13.             if($_POST['share']=="OFF"){
  14.                  $sql = "UPDATE usuarios SET comparte = '0' WHERE id = ".$id."'";
  15.                  $res = mysql_query($sql);
  16.                  $_SESSION['comparte'] = 0;
  17.                  echo "cambiado a NO compartir";
  18.             }
  19. }

Fijate, si te devuelve bien el valor del ALERT tendrías que probar en vez de poner dos IF, probá con un ELSE.

Suerte.
__________________
Freelance - Aplicaciones Web
  #3 (permalink)  
Antiguo 10/02/2010, 16:52
 
Fecha de Ingreso: febrero-2009
Mensajes: 580
Antigüedad: 15 años, 2 meses
Puntos: 13
Respuesta: Probelmas con un checkbox

Pues con esta linea que me has anyadido no me muestra ningun resultado, no se el error pues se carga en ajax la pagina,

para verlo, keepyourlinks.com, usuario juan pass juan (es un usuario de pruebas que tengo), settings y bueno, solo hay una opcion



EDIT,


despues de mas pruebas, estoy con

Código PHP:
    <?php
include('configuracion.php');


session_start();
if(!isset(
$_SESSION['logueado']) | !$_SESSION['logueado'] ){
    
header("Location: http://keepyourlinks.comxa.com/includes/wellcome.php");
}

$id $_SESSION['id'];
if(isset(
$_POST['submit'])){
            if(
$_POST['share']){
                    
$query mysql_query("SELECT * FROM usuarios WHERE id = '$id'") or die(mysql_error());
                    
$data mysql_fetch_array($query);
                    if(
$data['comparte'] == ) {
                        
$sql "UPDATE usuarios SET comparte = 0 WHERE id = $id";
                        
$res mysql_query($sql);
                        
$_SESSION['comparte'] = 0;
                    }else{
                        
$sql "UPDATE usuarios SET comparte = 1 WHERE id = $id";
                        
$res mysql_query($sql);
                        
$_SESSION['comparte'] = 1;
                    }
            }
}




?>

<div id="csc"><!--the_box-->
 <span class="tr"></span>


<div class="cssbox">  <div class="cssbox_head">  <h2>SETTINGS</h2> <hr /><br /> </div>  <div class="cssbox_body">

  


<form name = "profile" method="post" action="javascript:FAjax('./php/profile.php','contenidos','share='+document.getElementById('share').value,'POST');">
  
     <label>Select this option if you don't mind if other users find your links 
     <? if($_SESSION['comparte']==1){
         echo 
"<input type='checkbox' name='share' id='share' checked>";    

        }
     else{
         echo 
"<input type='checkbox' name='share' id='share'>";    
        
                }
        
?>
     </label>

<INPUT name="submit" type="submit" value="Enviar">
   
   
</form>

</div></div>
__________________
¿ya conoces la red social de cocina? descubre y comparte recetas de cocina
TONIWEB, un programador web freelance

Última edición por Bam_Margera; 10/02/2010 a las 17:17
  #4 (permalink)  
Antiguo 10/02/2010, 18:37
 
Fecha de Ingreso: enero-2010
Mensajes: 152
Antigüedad: 14 años, 3 meses
Puntos: 5
Respuesta: Probelmas con un checkbox

Añade un:

Código PHP:
Ver original
  1. echo("comparte= ".$_SESSION['comparte']==1);

para que veas el valor de esa variable, es posible que esté vacía.

Otro error que tienes, si es ques tal y como lo copiaste, tienes espacios de más al inicio del script:

Código PHP:
Ver original
  1. <?php
  2. include('configuracion.php');
Eso provoca una salida al navegador y envía cabeceras de contenido antes de que se ejecute session_start(), por lo cual todas las variables de sesión estarán vacías.
  #5 (permalink)  
Antiguo 10/02/2010, 19:21
 
Fecha de Ingreso: febrero-2009
Mensajes: 580
Antigüedad: 15 años, 2 meses
Puntos: 13
Respuesta: Probelmas con un checkbox

Muchas gracias por tu respuesta, al final lo solucione partiendo del codigo original.. jeje

por curiosidad, lo pongo


Código PHP:
if($_POST['share']){
    
    
    
    if(
$_SESSION['comparte']==1){
            
$sql "UPDATE usuarios SET comparte = 0 WHERE id = $id";
            
$res mysql_query($sql);
            
$_SESSION['comparte'] = 0;    
    }else{
            
$sql "UPDATE usuarios SET comparte = 1 WHERE id = $id";
            
$res mysql_query($sql);
            
$_SESSION['comparte'] = 1;
    }

__________________
¿ya conoces la red social de cocina? descubre y comparte recetas de cocina
TONIWEB, un programador web freelance

Etiquetas: checkbox
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 08:16.