如何在表单提交成功后隐藏提交按钮并显示成功提示

如何在表单提交成功后隐藏提交按钮并显示成功提示

本文介绍如何通过前端 javascript 与后端 php 协同配合,在联系表单成功提交后立即隐藏“send”按钮、显示自定义成功消息,避免页面跳转,提升用户体验。

要实现“提交成功后隐藏按钮 + 显示感谢消息”,核心思路是:不依赖页面跳转(header() 重定向),而是通过 AJAX 异步提交表单,并在 JavaScript 中控制 UI 状态。你当前的代码仍采用传统表单提交(

),这会导致整页刷新,无法平滑切换按钮与提示——因此需重构为无刷新提交。

✅ 推荐方案:AJAX + JSON 响应(前后端分离更清晰)

1. 后端 PHP(sendmail.php)返回结构化响应

修改你的 sendmail.php,确保它不执行重定向,而是统一输出 JSON,并在成功/失败时设置对应 HTTP 状态码:

 false, 'message' => 'Method not allowed']);
    exit;
}

// 验证 & 过滤逻辑(保持你原有 test_input 和 $errors 处理)
function test_input($data) {
    return htmlspecialchars(trim(stripslashes($data)));
}

$errors = [];
if (empty($_POST['name']) || empty($_POST['email']) || empty($_POST['message'])) {
    $errors[] = "Please fill-in the form correctly";
} elseif (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
    $errors[] = "Invalid e-mail address";
}

if (!empty($errors)) {
    http_response_code(400);
    echo json_encode(['success' => false, 'message' => $errors[0]]);
    exit;
}

// 发送邮件 & 写日志(保留你原有逻辑)
$name = test_input($_POST['name']);
$email = test_input($_POST['email']);
$message = test_input($_POST['message']);

$to = "contact@example.com";
$subject = "example | You have a new message from " . $name;
$body = "Name: $name/nEmail: $email/nMessage:/n$message";

$headers = "From: $email/r/n" . "Reply-To: $email/r/n";

// 记录日志(建议用 file_put_contents,注意权限)
$logEntry = "$name == Email: $email == Message: $message" . PHP_EOL;
file_put_contents('entries.log', $logEntry, FILE_APPEND | LOCK_EX);

// 发送邮件(示例,实际请用 mail() 或 SMTP 库)
if (mail($to, $subject, $body, $headers)) {
    http_response_code(200);
    echo json_encode(['success' => true, 'message' => 'Thank you for contacting us. We will be in touch with you soon.']);
} else {
    http_response_code(500);
    echo json_encode(['success' => false, 'message' => 'Failed to send email. Please try again.']);
}
?>

⚠️ 注意:mail() 函数在本地开发环境(如 XAMPP/MAMP)可能不可用,请测试或改用 PHPMailer 等可靠库。

2. 前端 HTML + JavaScript(关键交互逻辑)

保持你的 HTML 结构,但移除 onsubmit 冗余属性,添加 ID 便于操作:

ReRoom AI

ReRoom AI

专为室内设计打造的AI渲染工具,可以将模型图、平面图、草图、照片转换为高质量设计效果图。

下载


  
  
  
  

添加以下 JavaScript(放在

https://www.php.cn/faq/2025402.html

发表回复

Your email address will not be published. Required fields are marked *