在AJAX上区分多种形式

时间:2019-02-25 06:17:01

标签: javascript php 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页面的情况下实现表单提交。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

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

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