用deepseek 写的一个简单客户留言系统

调用jquery库,用ajax写的一个客户留言系统,测试改进后完美运行。分享

HTML +JS代码

 <!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>悬浮客服图标</title>
    <!-- 引入 jQuery -->
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
    <style>
        /* 悬浮图标样式 */
        .floating-service {
            position: fixed;
            right: 20px;
            bottom: 20px;
            width: 60px;
            height: 60px;
            background-color: #007bff;
            color: white;
            border-radius: 50%;
            text-align: center;
            line-height: 60px;
            font-size: 24px;
            cursor: pointer;
            box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
            transition: background-color 0.3s ease;
        }

        .floating-service:hover {
            background-color: #0056b3;
        }

        /* 弹出对话框样式 */
        .popup {
            display: none;
            position: fixed;
            right: 30px;
            bottom: 100px;
            width: 300px;
            padding: 20px;
            background-color: white;
            border-radius: 10px;
            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
            z-index: 1000;
        }

        .popup input, .popup textarea {
            width: 100%;
            padding: 10px;
            margin-bottom: 10px;
            border: 1px solid #ccc;
            border-radius: 5px;
            font-size: 14px;
        }

        .popup button {
            width: 100%;
            padding: 10px;
            background-color: #007bff;
            color: white;
            border: none;
            border-radius: 5px;
            cursor: pointer;
            font-size: 16px;
        }

        .popup button:hover {
            background-color: #0056b3;
        }

        /* 反馈信息样式 */
        .feedback {
            margin-top: 10px;
            font-size: 14px;
            color: green;
        }

        .feedback.error {
            color: red;
        }
    </style>
</head>
<body>
    <!-- 悬浮客服图标 -->
    <div class="floating-service" id="floatingService">
        💬
    </div>

    <!-- 弹出对话框 -->
    <div class="popup" id="popup">
        <!-- 邮箱输入表单 -->
        <form id="emailForm">
            <input type="email" id="email" name="email" placeholder="请输入您的邮箱" required>
            <button type="submit">提交</button>
        </form>

        <!-- 留言输入表单 -->
        <form id="messageForm" style="display: none;">
            <textarea id="message" name="message" rows="5" placeholder="请输入您的留言内容" required></textarea>
            <button type="submit">提交留言</button>
        </form>

        <!-- 反馈信息 -->
        <div id="feedback" class="feedback"></div>
    </div>

    <script>
        $(document).ready(function () {
            // 打开弹出对话框
            $("#floatingService").click(function () {
                $("#popup").show();
            });

            // 提交邮箱
            $("#emailForm").submit(function (event) {
                event.preventDefault(); // 阻止表单默认提交行为
                const email = $("#email").val();
                if (email && validateEmail(email)) {
                    // 隐藏邮箱表单,显示留言表单
                    $("#emailForm").hide();
                    $("#messageForm").show();
                } else {
                    showFeedback("请输入有效的邮箱地址!", true);
                }
            });

            // 提交留言
            $("#messageForm").submit(function (event) {
                event.preventDefault(); // 阻止表单默认提交行为
                const email = $("#email").val();
                const message = $("#message").val();

                if (!message) {
                    showFeedback("请输入留言内容!", true);
                    return;
                }

                // 发送AJAX请求
                $.ajax({
                    url: "/fedback/mail/submit-ly.php",
                    type: "POST",
                    data: { email: email, message: message },
                    dataType: "json", // 确保响应被解析为 JSON
                    success: function (response) {
                        if (response.success) {
                            showFeedback("留言提交成功!我们会尽快联系您。");
                            setTimeout(closePopup, 15000);
                        } else {
                            showFeedback(response.message || "提交失败,请重试!", true);
                        }
                    },
                    error: function (xhr, status, error) {
                        console.error("AJAX 请求失败:", status, error);
                        showFeedback("网络错误,请重试!", true);
                    }
                });
            });

            // 关闭弹出对话框
            function closePopup() {
                $("#popup").hide();
                // 重置表单
                $("#emailForm").show();
                $("#messageForm").hide();
                $("#email").val("");
                $("#message").val("");
                $("#feedback").text("");
            }

            // 显示反馈信息
            function showFeedback(message, isError = false) {
                const feedback = $("#feedback");
                feedback.text(message);
                feedback.toggleClass("error", isError);
            }

            // 邮箱验证
            function validateEmail(email) {
                const regex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
                return regex.test(email);
            }
        });
    </script>
</body>
</html>

PHP 接收前端代码进行校验反馈。

<?php
header("Content-Type: application/json");

// 获取前端发送的数据
$email = $_POST['email'] ?? '';
$message = $_POST['message'] ?? '';

// 验证数据
if (empty($email) || empty($message)) {
    echo json_encode([
        'success' => false,
        'message' => '邮箱和留言内容不能为空!'
    ]);
    exit;
}

if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
    echo json_encode([
        'success' => false,
        'message' => '请输入有效的邮箱地址!'
    ]);
    exit;
}

// 这里可以将数据存储到数据库
// 例如:$pdo->prepare("INSERT INTO messages (email, message) VALUES (?, ?)")->execute([$email, $message]);

// 返回成功响应
echo json_encode([
    'success' => true,
    'message' => '留言提交成功!'
]);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值