I have a php form that submits values into a mysql dB. It all works fine and the data updates in the dB, but when I submit the form the textarea doesnt show the update value. All fields show the original values fine before submit. Text inputs show the update values fine but not the textarea. If I refresh the page after submit it shows the updated value. Can anyone help with this please. I have searched a lot of a solution but no luck.
PHP CODE
$query = "SELECT about FROM table WHERE id = 1";
$stmt = $conn->prepare($query);
$stmt->execute();
$result = $stmt->get_result();
$row = $result->fetch_assoc();
// Set default values if no existing data
$about = $row['about'] ?? '';
// Initialize message variables
$message = "";
$updated = false;
// Step 3: Handle form submission (if form is submitted)
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$newAbout = $_POST['about'];
// Check if anything has changed before updating
if ($newAbout !== $about) {
// Update record in the database
$updateQuery = "UPDATE static_pages SET about = ? WHERE id = 1";
$stmt = $conn->prepare($updateQuery);
$stmt->bind_param("s", $newAbout);
if ($stmt->execute()) {
// On successful update, fetch the updated record
$row['about'] = $newAbout;
$message = "Record updated successfully!";
$updated = true;
} else {
$message = "Error updating record: " . $stmt->error;
}
$stmt->close();
} else {
// If no changes made, show a message
$message = "No changes were made.";
}
}
Form Code
<form method="POST" action="">
<textarea id="about" name="about" rows="20"><?php echo htmlspecialchars($about); ?></textarea>
<button class="button_blue">Update</button>
</form>