fixed delete note
This commit is contained in:
parent
5a63cc66c5
commit
95b7634901
@ -88,8 +88,12 @@ class NotesController
|
||||
|
||||
public function deleteNote()
|
||||
{
|
||||
$noteId = $_GET['id'];
|
||||
$this->notesModel->deleteNote($noteId, $_SESSION['user_id']);
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['note_id'])) {
|
||||
$noteId = $_POST['note_id'];
|
||||
$this->notesModel->deleteNote($noteId, $_SESSION['user_id']);
|
||||
}
|
||||
|
||||
header("Location: ?controller=Notes&page=showNotes&do=showNotes");
|
||||
exit();
|
||||
}
|
||||
}
|
@ -1,4 +1,3 @@
|
||||
// public/script.js
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// --- Password Strength Checker for Registration ---
|
||||
const passwordInput = document.getElementById('password');
|
||||
@ -58,60 +57,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||
if(passwordInput.value) passwordInput.dispatchEvent(new Event('input'));
|
||||
}
|
||||
|
||||
// --- Delete Note Confirmation and AJAX ---
|
||||
document.querySelectorAll('.delete-note-btn').forEach(button => {
|
||||
button.addEventListener('click', function(e) {
|
||||
e.preventDefault();
|
||||
if (confirm('Are you sure you want to delete this note?')) {
|
||||
const noteId = this.dataset.noteId;
|
||||
|
||||
// Create a temporary form to submit for delete
|
||||
const tempForm = document.createElement('form');
|
||||
tempForm.method = 'POST';
|
||||
tempForm.style.display = 'none';
|
||||
|
||||
const actionInput = document.createElement('input');
|
||||
actionInput.type = 'hidden';
|
||||
actionInput.name = 'action';
|
||||
actionInput.value = 'delete_note';
|
||||
tempForm.appendChild(actionInput);
|
||||
|
||||
const noteIdInput = document.createElement('input');
|
||||
noteIdInput.type = 'hidden';
|
||||
noteIdInput.name = 'note_id';
|
||||
noteIdInput.value = noteId;
|
||||
tempForm.appendChild(noteIdInput);
|
||||
|
||||
document.body.appendChild(tempForm); // Form must be in DOM to submit
|
||||
|
||||
// Use handleAjaxForm for consistency
|
||||
const formData = new FormData(tempForm);
|
||||
fetch('?controller=Notes&do=showNotes', {
|
||||
method: 'POST',
|
||||
body: formData
|
||||
})
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
displayMessage(data.message, data.success ? 'success' : 'danger');
|
||||
if (data.success) {
|
||||
// Refresh page or remove row dynamically for better UX
|
||||
// For simplicity, reload. A more advanced way is to find and remove table row.
|
||||
setTimeout(() => { window.location.reload(); }, 1000);
|
||||
}
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('Error:', error);
|
||||
displayMessage('An error occurred during deletion.', 'danger');
|
||||
})
|
||||
.finally(() => {
|
||||
document.body.removeChild(tempForm); // Clean up
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// --- Drag and Drop File Upload ---
|
||||
// ... (no changes from previous, ensure it's present)
|
||||
const dropZone = document.getElementById('drop-zone');
|
||||
const noteTitleInput = document.getElementById('title');
|
||||
const noteContentInput = document.getElementById('content');
|
||||
|
@ -56,7 +56,12 @@
|
||||
<td><?php echo date("d.m.Y H:i", strtotime($note['updated_at'])); ?></td>
|
||||
<td class="actions-cell">
|
||||
<a href="?controller=Notes&do=editNote&id=<?php echo $note['id']; ?>" class="button">Edit</a>
|
||||
<button class="button danger delete-note-btn" data-note-id="<?php echo $note['id']; ?>">Delete</button>
|
||||
<form method="POST" action="?controller=Notes&do=deleteNote" onsubmit="return confirm('Are you sure you want to delete this note?');" style="display: inline;">
|
||||
<input type="hidden" name="note_id" value="<?php echo $note['id']; ?>">
|
||||
<button type="submit" class="button danger">Delete</button>
|
||||
<input type="hidden" name="controller" value="Notes">
|
||||
<input type="hidden" name="do" value="deleteNote">
|
||||
</form>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
|
Loading…
x
Reference in New Issue
Block a user