Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 同一页面上的多个表单_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript 同一页面上的多个表单

Javascript 同一页面上的多个表单,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我在工作上遇到了麻烦。 我需要在同一页上有多个表单。。。我尝试了无数的事情,但似乎没有任何效果 我在这里试图做的是识别每个表单(以某种方式),以便提交该表单,而不是页面上的第一个表单。下面的代码有效,但提交的表单始终相同,第一个 这是我目前的密码 JS: HTML: 在表单周围的所有DIV包装上使用相同的ID ID必须是唯一的,因此可以使用类,但实际上根本不需要任何标识符,也不需要数据属性,.submit按钮位于表单内部,因此只需this.form,或更多jQuery'ish$(this.clo

我在工作上遇到了麻烦。 我需要在同一页上有多个表单。。。我尝试了无数的事情,但似乎没有任何效果

我在这里试图做的是识别每个表单(以某种方式),以便提交该表单,而不是页面上的第一个表单。下面的代码有效,但提交的表单始终相同,第一个

这是我目前的密码

JS:

HTML:


在表单周围的所有DIV包装上使用相同的ID

ID必须是唯一的,因此可以使用类,但实际上根本不需要任何标识符,也不需要数据属性,
.submit
按钮位于表单内部,因此只需
this.form
,或更多jQuery'ish
$(this.closest('form')
即可获取父表单

$(document).ready(function(){

    $('.submit').on("click", function() {

        var form = $(this).closest('form');

        $.post("send.php", form.serialize(), function(response) {
            form.find('.success').html(response);
        });

        return false;

    });
});

但是,您应该在
#success
元素上使用一个类来根据表单查找它。

因此,包装表单的所有DIV都具有相同的ID,都是
查询框
,并且您出于某种奇怪的原因试图用数据属性来标识它们?当您执行
$(“#inquirebox”).data(“artworkid”)
时,您总是会得到第一个,因为ID是唯一的,jQuery不希望有比第一个更多的ID?是的。我怎么能让每个表单包装器都有不同的ID,并能用jQuery识别它,让它知道我要提交的是哪一个呢?哇!非常感谢你@adeneo。我把整件事搞得太复杂了。
<div id="inquirebox" data-artworkid="<?php echo 456;?>">
    <form action="" method="post" id="artinquire<?php echo 456;?>" data-artworkid="<?php echo 456;?>">
        <label for="name">Name:</label><br />
        <input type="text" name="name" id="name" /><br />

        <label for="email">Email:</label><br />
        <input type="text" name="email" id="email" /><br />

        <label for="message">Message:</label><br />
        <textarea name="message" id="message"></textarea><br />

        <input type="hidden" name="id" value="<?php echo 456;?>">
        <input type="hidden" name="artist" value="<?php echo $title1; ?>">
        <input type="hidden" name="url" value="<?php echo $uri1; ?>">
        <input type="hidden" name="artwork" value="<?php echo $artwork1; ?>">

        <input type="button" value="send" class="submit" id="submit" data-artworkid="<?php echo 456;?>">
        <div id="success"></div>
    </form>
</div>
$(document).ready(function(){

    $('.submit').on("click", function() {

        var form = $(this).closest('form');

        $.post("send.php", form.serialize(), function(response) {
            form.find('.success').html(response);
        });

        return false;

    });
});