 
			
				16/05/2009, 15:35
			
			
			     |  
      |    |    |    Fecha de Ingreso: mayo-2006  
						Mensajes: 45
					  Antigüedad: 19 años, 5 meses Puntos: 0     |        |  
  |      valor de Checkbox y Ajax        Hola, aca estoy nuevamente planteando una gran duda que trate por todas las formas de resolver y no pude. Les comento:   
Tengo una pagina que la uso para actualizar datos de una base de datos mysql, en dicha pagina despliego este  formulario: 
 <form action="#" method="post" name="form1" id="form1"> 
<input type="text"  id="nombre" name="nombre" value="<?php echo htmlentities($row_perfilesusers['nombre'], ENT_COMPAT, ''); ?>" size="32" />   
<input type="text" id="apellido" name="apellido" value="<?php echo htmlentities($row_perfilesusers['apellido'], ENT_COMPAT, ''); ?>" size="32" />   
<input type="checkbox" id="busco"  name="busco" value=""  <?php if (!(strcmp(htmlentities($row_perfilesusers['busco'], ENT_COMPAT, ''),"Y"))) {echo "checked=\"checked\"";} ?>  />   
<input type="button" value="Guardar cambios"  onClick="fajax()" />   
el cual tiene 2 campos input text donde cargo el nombre y apellido del usuario y una campo checkbox que en la BD es del tipo SET 'Y','N'.  
Al cargar la pagina obtengo los datos del usuario con una consulta a mysql y los imprimo en los inputs y el checkbox.   
El archivo js  lo llamo en la pagina asi :   
<script src="actualiza.js" type="text/javascript"></script>     
y el archivo actualiza.js es el siguiente:   
function ajaxFunction() 
  { 
  var xmlHttp; 
  try 
    { 
    // Firefox, Opera 8.0+, Safari 
    xmlHttp=new XMLHttpRequest(); 
    return xmlHttp; 
    } 
  catch (e) 
    { 
    // Internet Explorer 
    try 
      { 
      xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); 
      return xmlHttp; 
      } 
    catch (e) 
      { 
      try 
        { 
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); 
        return xmlHttp; 
        } 
      catch (e) 
        { 
        alert("Your browser does not support AJAX!"); 
        return false; 
        } 
      } 
    } 
  }     
function fajax()     
{ 
    var nombre,apellido,busco,accion,ajax;   
    nombre = document.getElementById('nombre').value; 
    apellido = document.getElementById('apellido').value; 
    busco = document.getElementById('busco').value; 
    accion = document.getElementById('accion').value;   
    ajax=ajaxFunction(); 
    ajax.open("POST","actualizadatos.php",true); 
    ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");   
   ajax.onreadystatechange=function() 
    { 
        if(ajax.readyState==1) 
        {   
            document.getElementById('capa').innerHTML = "<div style='text-align:center; vertical-align:middle'><img src='image/loading.gif' align='center' style='text-align:center; vertical-align:middle'  /> Aguarde por favor...</div>";   
        }         
        else if (ajax.readyState==4) // Readystate 4 significa que ya acabó de cargarlo 
        {     
            if(ajax.status==200) 
            { 
            document.getElementById('capa').innerHTML = ajax.responseText;  
            }         
        } 
    }    
    ajax.send("nombre="+nombre+"&apellido="+apellido+"  &busco="+busco+"&accion="+accion); 
}        
Ahora el archivo actualizadatos.php es el siguiente:   
$nombre=$_REQUEST['nombre']; 
$apellido=$_REQUEST["apellido"]; 
$busco = $_REQUEST["busco"]; 
$accion=$_REQUEST["accion"];     
if (isset($nombre)) {  
$_POST['id_usuario']=$_SESSION['id_usuario']; 
$_POST['id']=$row_perfil1['id']; 
$_POST['nombre']=$nombre; 
$_POST['apellido']=$apellido; 
$_POST['busco']=$busco;     
$updateSQL = sprintf("UPDATE perfiles SET id_usuario=%s, nombre=%s, apellido=%s, busco=%s WHERE id=%s", 
                       GetSQLValueString($_POST['id_usuario'], "int"), 
                       GetSQLValueString($_POST['nombre'], "text"), 
                       GetSQLValueString($_POST['apellido'], "text"), 
                       GetSQLValueString(($_POST['buscohombres']) ? "true" : "", "defined","'Y'","'N'"), 
		       GetSQLValueString($_POST['id'], "int"));   
  mysql_select_db($database_perfil, $perfil); 
  $Result1 = mysql_query($updateSQL, $perfil) or die(mysql_error()); 
}         
?>   
El tema es que los datos de los input text me los guarda y carga sin problemas pero el checkbox no hay caso, cuando guardo los cambios en la BD no me graba en el campo busco si el usuario marco o no el checkbox.   
Probe de todo un poco y nada, me gustaria si es posible que me den una ayudita ya que visite facil 30 webs pero en ninguna se encontrar la solucion.   
Desde ya muchas gracias           |