Aula 15: Editando e Excluindo Tarefas

Por: Nerd Toolkit Postado em: Outubro 21, 2024 Visto por: 416

1. Editando Tarefas

Para editar uma tarefa, precisamos de um formulário que permita carregar os dados atuais da tarefa e atualizá-los no banco de dados.

Passo 1: Criando o Método updateTask()

No arquivo Task.php, vamos adicionar o método updateTask() para atualizar as tarefas no banco de dados.

public function updateTask() {
    $query = "UPDATE " . $this->table_name . " 
              SET name = ?, description = ?, status = ?
              WHERE id = ?";
    $stmt = $this->conn->prepare($query);
    $stmt->bind_param("sssi", $this->name, $this->description, $this->status, $this->id);
    return $stmt->execute();
}
Passo 2: Atualizando o Formulário para Edição

Agora, vamos criar uma página para editar a tarefa. Esta página carrega os dados da tarefa que será editada e permite que o usuário os altere.

Crie um arquivo edit_task.php com o seguinte conteúdo:

<?php
require_once 'classes/Database.php';
require_once 'classes/Task.php';
$database = new Database();
$db = $database->getConnection();
$task = new Task($db);
// Verificar se o ID da tarefa foi passado
if (isset($_GET['id'])) {
    $task->id = $_GET['id'];
    $result = $task->getTaskById();
    if ($result) {
        $row = $result->fetch_assoc();
        $task->name = $row['name'];
        $task->description = $row['description'];
        $task->status = $row['status'];
    }
}
// Processar a atualização
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $task->name = $_POST['name'];
    $task->description = $_POST['description'];
    $task->status = $_POST['status'];
    if ($task->updateTask()) {
        echo "Tarefa atualizada com sucesso!";
    } else {
        echo "Erro ao atualizar a tarefa.";
    }
}
?>
<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Editar Tarefa</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<body>
    <div class="container mt-5">
        <h2>Editar Tarefa</h2>
        <form method="post">
            <div class="form-group">
                <label for="name">Nome da Tarefa</label>
                <input type="text" name="name" class="form-control" value="<?php echo $task->name; ?>" required>
            </div>
            <div class="form-group">
                <label for="description">Descrição</label>
                <textarea name="description" class="form-control" required><?php echo $task->description; ?></textarea>
            </div>
            <div class="form-group">
                <label for="status">Status</label>
                <input type="text" name="status" class="form-control" value="<?php echo $task->status; ?>" required>
            </div>
            <button type="submit" class="btn btn-primary">Atualizar Tarefa</button>
        </form>
    </div>
</body>
</html>

2. Excluindo Tarefas

Agora, vamos adicionar a funcionalidade para excluir uma tarefa.

Passo 1: Criando o Método deleteTask()

No arquivo Task.php, adicione o seguinte método para deletar uma tarefa:

public function deleteTask() {
    $query = "DELETE FROM " . $this->table_name . " WHERE id = ?";
    $stmt = $this->conn->prepare($query);
    $stmt->bind_param("i", $this->id);
    return $stmt->execute();
}
Passo 2: Criando a Lógica de Exclusão na Página de Listagem

Na página tasks.php, vamos adicionar botões para editar e excluir tarefas. Atualize o código da listagem para incluir os botões de ação:

<ul class="list-group mt-3">
    <?php while ($row = $tarefas->fetch_assoc()): ?>
        <li class="list-group-item d-flex justify-content-between align-items-center">
            <div>
                <h5><?php echo $row['name']; ?></h5>
                <p><?php echo $row['description']; ?></p>
                <span class="badge badge-info"><?php echo $row['status']; ?></span>
            </div>
            <div>
                <a href="edit_task.php?id=<?php echo $row['id']; ?>" class="btn btn-warning btn-sm">Editar</a>
                <a href="delete_task.php?id=<?php echo $row['id']; ?>" class="btn btn-danger btn-sm" onclick="return confirm('Tem certeza que deseja excluir esta tarefa?');">Excluir</a>
            </div>
        </li>
    <?php endwhile; ?>
</ul>
Passo 3: Criando a Página de Exclusão

Por fim, crie a página delete_task.php para processar a exclusão da tarefa:

<?php
require_once 'classes/Database.php';
require_once 'classes/Task.php';
$database = new Database();
$db = $database->getConnection();
$task = new Task($db);
// Verificar se o ID da tarefa foi passado
if (isset($_GET['id'])) {
    $task->id = $_GET['id'];
    if ($task->deleteTask()) {
        echo "Tarefa excluída com sucesso!";
    } else {
        echo "Erro ao excluir a tarefa.";
    }
}
?>
<a href="tasks.php">Voltar para a lista de tarefas</a>

3. Testando as Funcionalidades de Edição e Exclusão

  • Teste de Edição: Vá até a página de listagem de tarefas, clique em "Editar" em uma tarefa, atualize os dados e veja se eles são refletidos corretamente.
  • Teste de Exclusão: Clique no botão "Excluir" e confirme a exclusão da tarefa. Verifique se a tarefa foi removida do banco de dados e da interface.

4. Exercício Prático

  • Adicione uma confirmação visual (alertas ou mensagens) após a edição ou exclusão bem-sucedida de uma tarefa.
  • Experimente adicionar uma coluna de "Prioridade" para cada tarefa e permita que o usuário edite essa nova informação.

5. Próximos Passos

Agora que completamos as funcionalidades de CRUD, vamos continuar aprimorando o projeto, integrando mais recursos, como a ordenação e filtragem de tarefas, e a possibilidade de marcar tarefas como concluídas diretamente na interface.

Tags:
#editar tarefa PHP  # excluir tarefa PHP  # PHP OOP CRUD  # deletar tarefa MySQL  # sistema de tarefas PHP  # PHP com MySQL CRUD  # gerenciamento de tarefas PHP. 

Notícias Relacionadas

Aula 15: Editando e Excluindo Tarefas
  Contato
  • support@nerdtoolkit.com.br
Mapa do Site
Mostrar mapa do site
  Sobre

Feito de programadores para programadores.

Este site utiliza cookies. Ao continuar a utilizar este site, você concorda com a nossa utilização de cookies e política de privacidade.
Leia mais Concordo