0

我正在进行一项调查,该调查将位于常见问题解答页面的底部。我的问题是每次提交表单时,它都会将您发送到不同的页面。我想知道 - 有没有办法提交表单并有一条小消息来代替“感谢您的反馈”的调查,而不是将用户发送到另一个页面或刷新页面?

到目前为止,我有一个包含 HTML 表单、CSS 和 jQuery 的文件以及另一个包含与数据库的 PHP 连接和向数据库插入数据的文件。

我会很感激一个愚蠢的解释,一个例子会有所帮助,因为我对编程比较陌生。

重要说明:我的 jQuery 设置为在用户回答非常有帮助/非常有帮助时自动提交。如果没有,下面会出现另外两个问题,底部有一个提交按钮。

更具体地说,它看起来像这样:

$(document).ready(function() {
    $('.rating').click(function() {
    $('.rating').removeClass('selected');
    ratingClick(this);
});
});

function ratingClick(that) {
console.log(that.id);
    if (that.id == 'rating4' || that.id == 'rating5') {
        //$('#questions').fadeOut('slow');
        //$('#thankYou').fadeIn('slow');
        $('#questions').submit();
    } else {
        $('#getMore').fadeIn();
        $(that).toggleClass('selected');
    }
}

$(document).ready(function() {
$('#submit').click(function(){
    //$('#questions').fadeOut('slow');
    //$('#thankYou').fadeIn('slow');
});
});
4

2 回答 2

0

你想要的是 jquery post 函数:http ://api.jquery.com/jQuery.post/

确保您的数据是 JSON。

$("#formdiv").click(function(){
     $.post("somepage",{ yourformdata} ); 
     $("#formdiv").replacewith("Thanks for filling out the form!");
}); 

您可以使用 replaceWith 函数将所需内容替换为感谢消息。

于 2013-10-29T22:03:16.187 回答
0

亚历克斯,

从您提供的代码来看,离开页面的原因是您没有在 click 事件上阻止 Default()。除非您采取中止操作,否则您的页面将始终在提交后重新加载。没有保证,但尝试快速重构:

$(document).ready(function() {
    $('#submit').click(function(e){
        e.preventDefault();
        //$('#questions').fadeOut('slow');
        //$('#thankYou').fadeIn('slow');
    });
});

这应该让你更接近舞台。然后,您只需定义 ajax 逻辑,它应该可以通过快速搜索来满足您的需求。

于 2013-10-29T22:03:31.290 回答