Browse Source

todo list wip

master
Jakub Škrabánek 1 month ago
parent
commit
25feb728f3
  1. 32
      php/03_todolist/actions.php
  2. 14
      php/03_todolist/db.php
  3. 46
      php/03_todolist/index.php
  4. BIN
      php/03_todolist/todo.sqlite

32
php/03_todolist/actions.php

@ -0,0 +1,32 @@
<?php
require_once "db.php";
$action = $_GET["action"] ?? "";
$id = $_GET["id"] ?? 0;
// & = AltGR + C
if($action =="add" && !empty($_POST["task"])) {
//přidání nového úkolu
$taskText= trim($_POST["task"]);
$pripravaDatNaOdeslani = $db->prepare("INSERT INTO
tasks (task_text) VALUES (:task_text)");
$pripravaDatNaOdeslani->execute(["task_text"=>$taskText]);
}
if($action =="complete" && $id > 0) {
//Aktualizovani úkolu na splněný
$pripravaDatNaOdeslani = $db->prepare("UPDATE tasks
SET is_completed = 1 WHERE id = :id");
$pripravaDatNaOdeslani->execute(["id"=>$id]);
}
if($action =="delete" && $id > 0) {
//odebraní úkolu na uspěšný
$pripravaDatNaOdeslani = $db->prepare("DELETE FROM tasks
WHERE id = :id");
$pripravaDatNaOdeslani->execute(["id"=>$id]);
}
header("Location: index.php");
exit;
?>

14
php/03_todolist/db.php

@ -0,0 +1,14 @@
<?php
$dbFile = __DIR__ . "/todo.sqlite";
$db = new PDO("sqlite:".$dbFile);
//Nastavení pro vyhazování vyjímek při chybách
$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
//vytvoření tabulky pokud neexistuje
$query = "CREATE TABLE IF NOT EXISTS tasks(
id INTEGER PRIMARY KEY AUTOINCREMENT,
task_text TEXT NOT NULL,
is_completed INTEGER DEFAULT 0,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
)";
$db->exec($query);
?>

46
php/03_todolist/index.php

@ -0,0 +1,46 @@
<?php
require_once "db.php";
//získání všechn úkolů z databáze (sežezené dle vytvoření)
$rawDataZDatabaze = $db->query("SELECT * FROM tasks
ORDER BY created_at DESC");
$ukoly = $rawDataZDatabaze->fetchAll(PDO::FETCH_ASSOC);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Jednoduchy ToDo List</title>
</head>
<body>
<h1>Muj úkolníček</h1>
<!-- formulář pro přidání úkolu -->
<form action="actions.php?action=add" method="post">
<input type="text" name="task" placeholder="Ukol..."
require autofocus>
<button type="submit">Přidat Úkol</button>
</form>
<!-- Seznam úkolů -->
<ul>
<!-- jediný bod bokud nebude žádný úkol -->
<?php if (empty($ukoly)): ?>
<li>Žádné ukoly k zobrazení</li>
<?php endif; ?>
<!-- Pokud budou úkoly -->
<?php foreach ($ukoly as $ukol): ?>
<li>
<span>
<?= htmlspecialchars($ukol["task_text"])?>
-
<?= $ukol["is_completed"] ? "Splněno" : "Nesplněno" ?>
</span>
</li>
<?php endforeach; ?>
</ul>
</body>
</html>

BIN
php/03_todolist/todo.sqlite

Binary file not shown.
Loading…
Cancel
Save