Foros del Web » Programando para Internet » PHP »

to do list

Estas en el tema de to do list en el foro de PHP en Foros del Web. hola a todos, soy nuevo en el foro y en el mundo de php.:) Os comento lo que tengo que hacer Tengo que hacer una ...
  #1 (permalink)  
Antiguo 16/10/2009, 02:32
 
Fecha de Ingreso: octubre-2009
Mensajes: 16
Antigüedad: 14 años, 6 meses
Puntos: 0
to do list

hola a todos, soy nuevo en el foro y en el mundo de php.:)

Os comento lo que tengo que hacer

Tengo que hacer una especie de to do list en php-mysql.


La idea es hacer una select y sacar una lista de tareas a un formulario web. Luego cada una de estas tareas se tiene que poder marcar un con botón para marcarla como realizada y que desaparezca de la lista.

El problema lo tengo en sacar los datos en formularios individuales, y luego al marcarla como realizada guardar ese formulario individual en la base de datos.


Espero que alguien me pueda ayudar.... y si se os ocurre una manera mejor de hacerlo os lo agradeceria.


Muchas gracias
  #2 (permalink)  
Antiguo 16/10/2009, 20:12
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: to do list

Hola
Pues revisa esto o esto
saludos
  #3 (permalink)  
Antiguo 17/10/2009, 05:11
 
Fecha de Ingreso: octubre-2009
Mensajes: 16
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: to do list

Ya lo tengo casi casi gracias a lo que has puesto pero me da error al guardar los datos en save_task.php

Pongo los dos codigos:

index

if ($_POST['listdata'] == 1):

$tipodata = $_POST['tipodata'];

mysql_connect ('localhost', 'root', '--------') or die ($MenjError = 'No se puede acceder a la base de datos: ' . mysql_error());
mysql_select_db ('it');

$query = mysql_query ('SELECT * FROM it.agenda');

$showtitu = '<div class="titu">' . $tipodata . '</div>';

function setData($arr)
{

if($arr['realizado'] == 1)
{
$realizado = ' checked';
}

$dat = '<div class="item"><form action="save_task.php" method="POST">';
$dat .= '<input type="hidden" name="id" id="id" value="' . $arr['id'] . '" />ID: ' . $arr['id'] . ' | ';
$dat .= ' <label class="campos">&nbsp;Tarea&nbsp;</label> >> ' . $arr['text']. ' | ';
$dat .= '<input type="checkbox" id="realizado" value"0" name="realizado"' . $realizado . ' /><label class="campos">&nbsp;Realizado&nbsp;</label> <br> <label class="campos">&nbsp;Observaciones&nbsp;</label>';
$dat .= '<textarea name="area_observaciones" id="area_observaciones" cols="120" rows="5"></textarea>';
$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 == 'No realizadas' && $row['realizado'] == 0)
{
$showdata .= setData($row);
}

if ($tipodata == 'Realizadas' && $row['realizado'] == 1)
{
$showdata .= setData($row);
}

if ($tipodata == 'Mostrar todas las tareas')
{
$showdata .= setData($row);
}

}

endif;

?>



</head>
<body>
<form action="<?=$_SERVER['PHP_SELF']?>" method="POST">
<input type="hidden" name="listdata" value="1" />
<input type="submit" name="tipodata" value="Mostrar todas las tareas" />
<input type="submit" name="tipodata" value="No realizadas" />
<input type="submit" name="tipodata" value="Realizadas" />
</form>


<?=$showtitu?>
<?=$showdata?>

<?=$MenjError?>

</body>
</html>
</body>
</html>




save_task.php

<form action="index.php">
<?php

#phpinfo();

$id=$_GET[id];
//$realizado=$_GET[realizado];
$observaciones=$_GET[area_observaciones];

?>
<?
// Primero comprobamos que ningún campo esté vacío y que todos los campos existan.
if(isset($id) && !empty($id) &&
//isset($realizado) && !empty($realizado) &&
isset($observaciones) && !empty($observaciones)
) {

// Si entramos es que todo se ha realizado correctamente
$link = mysql_connect("localhost","root","------");
mysql_select_db("it",$link);

// Con esta sentencia SQL insertaremos los datos en la base de datos
mysql_query(" UPDATE it.agenda SET observaciones='$observaciones'
WHERE id='$id' ",$link);

// Ahora comprobaremos que todo ha ido correctamente
$my_error = mysql_error($link);

if(!empty($my_error)) {

echo "Ha habido un error al insertar los valores. $my_error";

} else {

echo "El informe ha sido generado satisfactoriamente";

}

} else {

echo "Error, no ha introducido todos los datos";

}

?>
</h1>
<input type="submit" value="Volver a la lista de tareas" />
</form>
</body>
</html>


¿Me podeis ayudar?

Última edición por antuanbl; 17/10/2009 a las 05:20
  #4 (permalink)  
Antiguo 17/10/2009, 05:32
Avatar de Animeonx  
Fecha de Ingreso: agosto-2009
Ubicación: Debajo de tu Cama
Mensajes: 56
Antigüedad: 14 años, 8 meses
Puntos: 3
Respuesta: to do list

Que tipo de error te da, seria bueno si la facilitas. Ya que no se cuenta con la base de datos para probar.
  #5 (permalink)  
Antiguo 17/10/2009, 05:48
 
Fecha de Ingreso: octubre-2009
Mensajes: 16
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: to do list

Hola, el error que da es el siguiente:


Error, no ha introducido todos los datos

Es uno de los de depuración.

Yo creo que no se pasan bien las 3 variables de index.php a save_task.php, o no las recibo bien o algo parecido. Pero por más que miro no se donde puede ser.

gracias
  #6 (permalink)  
Antiguo 17/10/2009, 17:33
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: to do list

Hola
ya revisaste las variables del if???

if(isset($id) && !empty($id) &&
//isset($realizado) && !empty($realizado) &&
isset($observaciones) && !empty($observaciones)
) {

que tengan valores???
revisa eso, nos comentas
saludos
  #7 (permalink)  
Antiguo 18/10/2009, 08:44
 
Fecha de Ingreso: octubre-2009
Mensajes: 16
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: to do list

ya consegui que se guarden los datos, ahora lo que me falla es como enviar 1(si está marcado) o 0 ( si no está marcado) en el checkbox.

El valor de la variable $realizado que me llega es 'on' ahora mismo.



CODIGO DE FORMULARIO



<body>
<h1 align="center" class="titulo">CHECKLIST PLATAFORMA</h1>

<div align="right">
<?php

if ($_POST['listdata'] == 1):

$tipodata = $_POST['tipodata'];

mysql_connect ('localhost', 'root', '') or die ($MenjError = 'No se puede acceder a la base de datos: ' . mysql_error());
mysql_select_db ('it');

$query = mysql_query ('SELECT * FROM it.agenda');

$showtitu = '<div class="titu">' . $tipodata . '</div>';

function setData($arr)
{

if($arr['realizado'] == 1)
{
$realizado = ' checked';
}

$dat = '<div class="item"><form action="save_task.php" method="get">';

$dat .= '<input type="hidden" name="id" id="id" value="' . $arr['id'] . '" />ID: ' . $arr['id'] . ' | ';

$dat .= '<label class="campos">&nbsp;Tarea&nbsp;</label> >> ' . $arr['text']. ' | ';

$dat .= '<input type="checkbox" id="realizado" value"" name="realizado" ' . $realizado . ' /><label class="campos">&nbsp;Realizado&nbsp;</label> <br> <label class="campos">&nbsp;Observaciones&nbsp;</label>';
echo $realizado;
//if ( $realizado == "on" ){ $realizado = 1 ;} else { $realizado = 0;}

$dat .= '<textarea name="area_observaciones" cols="120" rows="5">'. $arr['observaciones'] . '</textarea>';


$dat .= '<input type="submit" name="boton" value="Guardar Cambios" style="margin-left: 30px;" />';


$dat .= '</div></form>';

//$dat .= '<input name="area_observaciones" value="' . $arr['observaciones'] . '" type="text" ';

//$dat .= '<textarea name="area_observaciones" cols="120" rows="5">' . $arr['observaciones'] . '</textarea>';



return $dat;

}

while ($row = mysql_fetch_array($query))
{

if ($tipodata == 'No realizadas' && $row['realizado'] == 0)
{
$showdata .= setData($row);
}

if ($tipodata == 'Realizadas' && $row['realizado'] == 1)
{
$showdata .= setData($row);
}

if ($tipodata == 'Mostrar todas las tareas')
{
$showdata .= setData($row);
}

}

endif;

?>





CODIGO QUE GUARDA DATOS save_task.php donde me llega la variable $resultado con valor 'on'


$id=$_GET[id];
$realizado=$_GET[realizado];
$observaciones=$_GET[area_observaciones];
echo $realizado;
?>
<?
// Primero comprobamos que ningún campo esté vacío y que todos los campos existan.
if(isset($id) && !empty($id) &&
isset($realizado) && !empty($realizado) //&&
//isset($observaciones) //&& !empty($observaciones)
) {

// Si entramos es que todo se ha realizado correctamente
$link = mysql_connect("localhost","root","");
mysql_select_db("it",$link);

// Con esta sentencia SQL insertaremos los datos en la base de datos
mysql_query(" UPDATE it.agenda SET observaciones='$observaciones',realizado='$realiza do'
WHERE id='$id' ;",$link);

// Ahora comprobaremos que todo ha ido correctamente
$my_error = mysql_error($link);

if(!empty($my_error)) {

echo "Ha habido un error al insertar los valores. $my_error";

} else {

echo "El informe ha sido generado satisfactoriamente";

}

} else {

echo "Error, no ha introducido todos los datos";

}

?>
</h1>
<input type="submit" value="Volver a la lista de tareas" />
</form>
  #8 (permalink)  
Antiguo 18/10/2009, 09:56
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: to do list

Hola
Bueno, pues vuelve a leer los links que te deje en el post que te hice anteriormente, allí esta la respuesta
La clave es que cuando tu no chequeas el check esa variable no existe en el $_POST, en cambio cuando si lo chequeas la variable si va
Revisa los links que te comente
saludos
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 01:07.