Ya se me agotaron las ideas para encontrar la forma de hacer que la BD reciba el valor de dos checkbox, uno de ellos que servira para validar comentarios.
Mi app esta basado en dos archivos. Este primer archivo me sirve como panel de control para enlistar y saber cuales comentarios han sido validados y cuales no:
Código PHP:
<?php
if ($_POST['listdata'] == 1):
$tipodata = $_POST['tipodata'];
mysql_connect ('localhost', 'root', '123456') or die ($MenjError = 'No se puede acceder a la base de datos: ' . mysql_error());
mysql_select_db ('basededatos');
$query = mysql_query ('SELECT * FROM comentarios');
$showtitu = '<div class="titu">' . $tipodata . '</div>';
function setData($arr)
{
if($arr['ttr'] == 1)
{
$ttrOK = ' checked';
}
if($arr['valid'] == 1)
{
$validOK = ' checked';
}
$dat = '<div class="item"><form action="editapp.php" method="POST">';
$dat .= '<input type="hidden" name="ID" value="' . $arr['ID'] . '" />ID: ' . $arr['ID'] . ' | ';
$dat .= '<input type="checkbox" value"1" name="ttr"' . $ttrOK . ' />Twitter | ';
$dat .= '<input type="checkbox" value"1" name="valid"' . $validOK . ' />Válido';
$dat .= '<input type="submit" name="boton" value="Guardar Cambios" style="margin-left: 30px;" />';
$dat .= '</div></form>';
return $dat;
}
while ($row = mysql_fetch_array($query))
{
if ($tipodata == 'Validados' && $row['valid'] == 1)
{
$showdata .= setData($row);
}
if ($tipodata == 'No validados' && $row['valid'] == 0)
{
$showdata .= setData($row);
}
if ($tipodata == 'Todos')
{
$showdata .= setData($row);
}
}
endif;
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es">
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<head>
<title>Administrar Comentarios</title>
<meta name="robots" content="noindex, nofollow">
<style type="text/css">
<!--
html, body {
height: 100%;
font-family: Arial, Helvetica, sans-serif;
font-size: 14px;
line-height: 18px;
text-align: left;
}
.item {
padding-bottom: 10px;
margin-bottom: 10px;
border-bottom: dashed 1px #CCCCCC;
width: 400px;
}
.titu {
border: solid 1px #CCCCCC;
padding: 8px;
font-size: 18px;
font-weight: bold;
margin-top: 35px;
margin-bottom: 35px;
text-transform: uppercase;
width: 385px;
}
-->
</style>
</head>
<body>
<form action="<?=$_SERVER['PHP_SELF']?>" method="POST">
<input type="hidden" name="listdata" value="1" />
<input type="submit" name="tipodata" value="Todos" />
<input type="submit" name="tipodata" value="Validados" />
<input type="submit" name="tipodata" value="No validados" />
</form>
<?=$showtitu?>
<?=$showdata?>
<?=$MenjError?>
</body>
</html>
Este segundo archivo es quien se encarga de guardar los cambios en la BD luego de recibirlos:
Código PHP:
<?php
$bot = $_POST['boton'];
$ID = $_POST['ID'];
$valid = (isset($_POST['valid']) && $_POST['valid'] == '1') ? 1 : 0;
$ttr = (isset($_POST['ttr']) && $_POST['ttr'] == '1') ? 1 : 0;
mysql_connect ('localhost', 'root', '123456') or die ($MenjError = 'No se puede acceder a la base de datos: ' . mysql_error());
mysql_select_db ('basededatos');
if ($bot == 'Guardar Cambios'):
$sql = "UPDATE comentarios SET valid='$valid', ttr='$ttr' WHERE ID = '$ID'";
$result = mysql_query($sql);
mysql_close();
if ($result)
{
echo 'Datos actualizados.';
} else {
echo 'No se pudieron actualizar los datos.';
}
echo ' <a href="edit.php">Regresar</a>';
endif;
?>
Alguna sugerencia de como guardar los cambios que haga en los checkbox ???