AJAX表单提交,提交另一个表单甚至想到使用$(this)

时间:2015-11-11 16:31:49

标签: php jquery ajax forms

我的页面上有两个表单。

一个在页脚中,是一个联系页面,但另一个是我的主要形式,称为“产品形式”。我在PHP中做了一些验证:

foreach( $_POST as $field => $val ) {
    if ($val == '') {
        echo $field . "- no val <br>";
    }
}

问题在于我看到的是以页脚形式验证的字段......

这是我的AJAX:

$('body').on('submit', '.product-form', function(e){
    e.preventDefault();
    var thisForm = $(this);
    $.ajax({
        url : '/wp-content/themes/theme/page-templates/template-parts/template-logic/send-form.php',
        type : 'POST',
        data : thisForm.serialize(),
        before : $(".error-message").remove(),
        success : function(data) {
        }
    });
});

这是如何从两种表单提交数据的?

两种形式的标签都已正确关闭,同时也有不同的类别。

必须在这个项目中使用WordPress,通常在家里使用Laravel验证更多,所以这有点像回归!

请求的表单HTML:

我想要的表格:

<form method="post" class="product-form">
    <li class="object field">
        <label for="full name">Your full name <span>*</span></label>
        <input class="req" autocomplete="off" type="text" name="full name" id="full name" placeholder="e.g. John Doe">
    </li>
</form>

页脚形式:

<form class="footer-form small">
    <li>
        <button class="object button large" type="submit">Get in touch</button>
    </li>
</form>

1 个答案:

答案 0 :(得分:-1)

请改变它:

$( ".product-form" ).submit(function( e) {
e.preventDefault();
var thisForm = $(this);
$.ajax({
    url : '/wp-content/themes/theme/page-templates/template-parts/template-logic/send-form.php',
    type : 'POST',
    data : thisForm.serialize(),
    before : $(".error-message").remove(),
    success : function(data) {
    }
});
});