You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将表单数据提交至Bootstrap Modal?代码实现求助

实现表单POST数据到Bootstrap Modal展示

没问题,我来帮你搞定这个需求!咱们要实现的是点击表单提交后,通过POST方式把姓名数据传给后端PHP,再把结果展示在Bootstrap Modal里。下面是完整的代码实现,我会一步步给你说明:

完整HTML代码(包含JS)

<!DOCTYPE html>
<html>
<head>
    <!-- 引入Bootstrap CSS -->
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css">
</head>
<body>

<!-- 表单部分 -->
<form id="nameForm" method="POST">
    First name:<br>
    <input type="text" name="firstname" value="sirdash" required>
    <br>
    Last name:<br>
    <input type="text" name="lastname" value="azari" required>
    <br><br>
    <input type="submit" value="Submit" class="btn btn-primary">
</form>

<!-- Modal -->
<div id="myModal" class="modal fade" role="dialog">
    <div class="modal-dialog">
        <!-- Modal content-->
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal">&times;</button>
                <h4 class="modal-title">Submitted Name</h4>
            </div>
            <div id="modalBodyContent" class="modal-body">
                <!-- 这里会动态填充PHP返回的内容 -->
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
            </div>
        </div>
    </div>
</div>

<!-- 引入依赖的JS -->
<script src="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script>

<script>
$(document).ready(function() {
    // 监听表单提交事件
    $('#nameForm').submit(function(e) {
        // 阻止表单默认的刷新提交行为
        e.preventDefault();
        
        // 发送AJAX POST请求
        $.ajax({
            type: 'POST',
            url: 'process-name.php', // 指向处理数据的PHP文件
            data: $(this).serialize(), // 序列化表单数据(自动打包firstname和lastname)
            success: function(response) {
                // 请求成功后,把返回的内容放到Modal的body里
                $('#modalBodyContent').html(response);
                // 显示Modal
                $('#myModal').modal('show');
            },
            error: function() {
                // 处理错误情况
                $('#modalBodyContent').html('<p>Oops, something went wrong!</p>');
                $('#myModal').modal('show');
            }
        });
    });
});
</script>

</body>
</html>

PHP处理文件(process-name.php)

<?php
// 检查是否是POST请求
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // 获取表单数据,做简单的过滤防止XSS
    $firstName = htmlspecialchars($_POST['firstname'] ?? '');
    $lastName = htmlspecialchars($_POST['lastname'] ?? '');
    
    // 验证数据非空
    if (!empty($firstName) && !empty($lastName)) {
        // 生成要展示的内容
        echo "<p>Your submitted name is:</p>";
        echo "<h3>*$firstName $lastName*</h3>";
    } else {
        echo "<p>Please fill in both first name and last name!</p>";
    }
} else {
    // 如果不是POST请求,返回错误
    echo "<p>Invalid request method!</p>";
}
?>

关键说明

  • 表单部分:给表单加了id="nameForm"方便JS选择,设置method="POST",并且给输入框加了required属性做前端验证。
  • AJAX逻辑:阻止表单默认提交,用serialize()快速打包所有表单数据,发送到PHP文件;请求成功后把后端返回的HTML填充到Modal的body,再弹出Modal。
  • PHP部分:用htmlspecialchars()过滤输入防止XSS攻击,验证数据有效性后生成展示内容返回给前端。
  • 依赖:确保引入了jQuery和Bootstrap的JS/CSS,因为Bootstrap Modal依赖这些。

内容的提问来源于stack exchange,提问作者majid Peidaei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:54:20