Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/05/2009, 15:35
Martin2006
 
Fecha de Ingreso: mayo-2006
Mensajes: 45
Antigüedad: 18 años, 7 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