首页 > 解决方案 > 在 AJAX 上区分多个表单

问题描述

我有一个内部有多个表单的 php 页面。

<form id="form_<?php echo $rowProduct['Product_ID'];?>">
    <a id="wh_<?php echo $rowProduct['Product_ID'];?>"><i class="fal fa-heart"></i></a>
    <input type="hidden" name="PID_<?php echo $rowProduct['Product_ID'];?>" value="<?php echo $rowProduct['Product_ID'];?>">
    <input type="hidden" name="mail_<?php echo $rowProduct['Product_ID'];?>" value="<?php echo $rowProduct['Mail'];?>">

这些表单是通过遍历 MySQL 上的所有数据生成的。每个表单和输入都有其通过 Product_ID 的唯一 ID。

下面是向数据库提交数据的 ajax 脚本。

<script>
    $('[id^=wh_]').click(function(e) {
        $.ajax({
            url: 'submit.php',
            type: 'POST',
            data: $("[id^=form_]").serialize(),
            success: function(data) {
                alert('Success add item');
            }
        });
        e.preventDefault();
    });
</script>

目前此代码成功地将数据插入 MySql,但提交的数据始终是最后一个表单,无论单击哪个提交按钮。我正在使用 AJAX 提交这些表单以实现表单提交而无需刷新 php 页面。

非常感谢您的每一次帮助。

标签: javascriptphpajax

解决方案


尝试将其更改data: $("[id^=form_]").serialize(),

data: $(this).closest('form').serialize()

推荐阅读