El index.php contiene esto
Código PHP:
Ver original
<?php include ("config.php"); ?> <?php include ("header.php"); ?> <script type="text/javascript"> function getDataServer(url, vars){ var xml = null; try{ xml = new ActiveXObject("Microsoft.XMLHTTP"); }catch(expeption){ xml = new XMLHttpRequest(); } xml.open("GET",url + vars, false); xml.send(null); if(xml.status == 404) alert("Url no valida"); return xml.responseText; } </script> <script type="text/javascript"> function modificar(id){ var error = getDataServer("modificar.php","?mod="+id); if(error){ alert(error); } // else{ // document.getElementById("div_"+id).style.display = "hidden"; // } } </script> <?php $query = 'SELECT * FROM '.$tabla.''; echo '<form id="formulario">'; if($row['hecha'] == '0'){ echo '<input type="checkbox" id="'.$row['id'].'" name="'.$row['id'].'" value="'.$row['hecha'].'" onClick="modificar('.$row['id'].');"> '.$row['tarea'].'<br>'; }else{ echo '<input type="checkbox" id="'.$row['id'].'" name="'.$row['id'].'" value="'.$row['hecha'].'" onClick="modificar('.$row['id'].');" checked> '.$row['tarea'].'<br>'; }; echo '</form>'; }; ?> <?php include("footer.php"); ?>
y el archivo modificar.php contiene lo siguiente
Código PHP:
Ver original
<?php include ("config.php"); ?> <?php if($_GET["mod"]){ $query = 'SELECT * FROM '.$tabla.' WHERE id = '.$_GET["mod"].';'; if($row['hecho'] == '0'){ $consulta = 'UPDATE tareas SET hecha = "1" WHERE id = '.$_GET["mod"].';'; }; if($row['hecho'] == '1'){ $consulta = 'UPDATE tareas SET hecha = "0" WHERE id = '.$_GET["mod"].';'; }; }; } ?>
Lo único que quiero que haga el script es que cuando pulse un checbox, modifique en la base de datos el campo "hecho". Si hay un cero, quiero que ponga un uno, si hay un uno quiero que ponga un cero. Simplemente esto. Pero no lo consigue que funcione, o solo me funciona para cambiar a un 1 o para cambiar a un 0. Mi base de datos contiene lo siguiente, por si hay alguna duda.
Código SQL:
Ver original
CREATE TABLE IF NOT EXISTS `tareas` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `tarea` text NOT NULL, `hecha` VARCHAR(2) NOT NULL, `añadida` DATE NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ; INSERT INTO `tareas` (`id`, `tarea`, `hecha`, `añadida`) VALUES (1, 'Programar php', '0', '2010-07-10'), (2, 'Tocar la guitarra', '1', '2010-07-10');