I am able to insert data in my database table and view everything, but now that I tried to make the delete button work I refreshedthe page and see Undefined index in delete.
The form looks like this:
<?php
foreach ($rows as $row){ ?>
<div>
<h3><?php echo $row['title']; ?></h3>
<p><?php echo $row['body']; ?></p>
<form method="post" action="<?php $_SERVER['PHP_SELF']; ?>">
<input type="hidden" name="delete_id" value="<?php echo $row['id']; ?>">
<input type="submit" name="delete" value="Delete">
</form>
</div>
<?php }
?>
Then in the following code I want to simply echo the ID but it does not work:
if($_POST['delete']){
echo $_POST['delete_id'];
}
Here my full code in case you need to see more:
<?php
require 'classes/Database.php';
$database = new Database;
$post = filter_input_array(INPUT_POST, FILTER_SANITIZE_STRING);
if($_POST['delete']){
echo $_POST['delete_id'];
}
if($post['submit']){
$id = $post['id'];
$title = $post['title'];
$body = $post['body'];
$database->query('UPDATE posts SET title = :title, body = :body WHERE id = :id');
$database->bind(':title', $title);
$database->bind(':body', $body);
$database->bind(':id', $id);
$database->execute();
if($database->lastInsertId()){
echo '<p>Post added</p>';
}
}
$database->query('SELECT * FROM posts');
$rows = $database->resultSet();
?>
<h1>Add Posts</h1>
<!-- Our action is/can be the page that we are on -->
<form method="post" action="<?php $_SERVER['PHP_SELF']; ?>">
<label for="">Post ID</label><br />
<input type="text" name="id" placeholder="Specify the ID..."><br /><br />
<label for="">Add title</label><br />
<input type="text" name="title" placeholder="Add a title..."><br />
<label>Post body</label><br />
<textarea name="body"></textarea><br /><br />
<input type="submit" name="submit" value="Submit">
</form>
<h1>Posts</h1>
<div>
<?php
foreach ($rows as $row){ ?>
<div>
<h3><?php echo $row['title']; ?></h3>
<p><?php echo $row['body']; ?></p>
<form method="post" action="<?php $_SERVER['PHP_SELF']; ?>">
<input type="hidden" name="delete_id" value="<?php echo $row['id']; ?>">
<input type="submit" name="delete" value="Delete">
</form>
</div>
<?php }
?>
</div>
How can I make the delete work?