-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathindex.php
124 lines (118 loc) · 4.84 KB
/
index.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<?php
session_start();
// db configs
try {
$db = new PDO('mysql:host=localhost;dbname=test_todo', 'lamp', 'nepal123');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo $e->getMessage();
}
// Check if the 'todo' table exists, and create it if not present
$tableCheck = $db->query("SHOW TABLES LIKE 'todo'");
if ($tableCheck->rowCount() == 0) {
$createTable = $db->query("
CREATE TABLE todo (
id INT AUTO_INCREMENT PRIMARY KEY,
item VARCHAR(255) NOT NULL,
status INT NOT NULL DEFAULT 0
)
");
if ($createTable) {
echo '<center><div class="alert alert-success placing" role="alert">
Todo table created successfully
</div></center>';
} else {
echo '<center><div class="alert alert-danger placing" role="alert">
Error creating todo table: ' . $db->errorInfo()[2] . '
</div></center>';
}
}
if (isset($_POST['add'])) {
$item = $_POST['item'];
if (!empty($item)) {
$newItem = $db->query("INSERT INTO todo (item, status) VALUES ('$item', 0) ");
if ($newItem->rowCount() > 0 ) {
echo '<center><div class="alert alert-success placing" role="alert">
Item Added
</div></center>';
}
}
}
if (isset($_GET['action'])) {
$itemID = $_GET['item'];
if ($_GET['action'] == 'done') {
$updateStatus = $db->query("UPDATE todo SET status = 1 WHERE id = '$itemID' ");
if ($updateStatus->rowCount() > 0) {
echo '<center><div class="alert alert-info placing" role="alert">
Item marked as done!
</div></center>';
}
}
elseif ($_GET['action'] == 'delete') {
$deleteItem = $db->query("DELETE FROM todo WHERE id = '$itemID' ");
if ($deleteItem->rowCount() > 0) {
echo '<center><div class="alert alert-danger placing" role="alert">
Item deleted!
</div></center>';
}
}
}
?>
</head>
<body>
<div class="container pt-5">
<div class="row">
<div class="col-sm-12 col-md-3"></div>
<div class="col-sm-12 col-md-6">
<div class="card middle-align">
<div class="card-header">
<p>Dynamic Todo Application</p>
</div>
<div class="card-body">
<form method="post" action="<?= $_SERVER['PHP_SELF']; ?>">
<div class="mb-3">
<input type="text" class="form-control" name="item" placeholder="Add an item">
</div>
<input type="submit" class="btn btn-dark" name="add" value="Add item">
</form>
<div class="todo-items">
<?php $items = $db->query("SELECT * FROM todo"); $c = 0; ?>
<?php if ($items->rowCount() < 1):?>
<center>
<img src="folder.png" width="50px" alt="Empty">
<br>
<span>Your list is empty</span>
</center>
<?php endif;?>
<br>
<br>
<?php while($data = $items->fetchObject() ):?>
<div class="pt-2">
<div class="row">
<div class="col-sm-12 col-md-6">
<h4 class="item-heading <?= $data->status == 1 ? 'done' : ''; ?>"><?= $data->item; ?></h4>
</div>
<div class="col-sm-12 col-md-6">
<a class="btn btn-outline-dark" href="?action=done&item=<?=$data->id;?>">Mark as done</a>
<a class="btn btn-outline-danger" href="?action=delete&item=<?=$data->id;?>">Delete</a>
</div>
</div>
</div>
<?php $c++; endwhile;?>
</div>
</div>
</div>
</div>
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
<script>
$(document).ready(function(){
$(".alert").fadeTo(5000, 500).slideUp(500, function(){
$(".alert").slideUp(500);
});
});
</script>
</body>
</html>