需要制作保存任何更改的Web表单,即使不单击“发送”


Need to make web form that save any change even if not click "SEND"

在我的新网站中,我有客户与我联系的表格。我没有太多的网络编程经验,所以我不确定最简单的方法是什么,

例如,如果客户填写了他的姓名和电话号码,然后决定有太多字段需要填写(即使不是必须的),那么他放弃并退出页面,然后我去制作在这种情况下,我仍然会得到他填写的详细信息,(姓名和电话号码)另外,如果他填写了一些东西,然后更改或删除,我也去知道了。

最简单的方法是什么?有没有开源的PHP基础系统可以做到这一点?甚至是WordPress的附加组件。填满页面的人,他会知道我这样做吗?每次他移动字段或其他东西时都会加载吗?因为我真的希望它不会

顺便说一句,如果他不按发送,我不会联系任何人,我只是去更好地了解为什么我失去了潜在客户,也许最多发送电子邮件问题。

我会使用 ajax 并在每次他们通过"更改、keyup"或之前答案中提到的类似内容更改表单中的值时保存。由于你使用Wordpress,你可以使用jquery。

它可能看起来像这样。如果您不熟悉jQuery,则以3种不同的方式定义字段,它很像CSS。序列化会获取您的所有字段并将它们发布到your_savingfile.php。

$('input[name="firstname"], .lastname, #phonenumber').on('keyup', function(){
    saveForm($('#form-id'));
}
var function = saveForm(f) {
    $.ajax({
        type: "POST",
        url: "your_savingfile.php",
        data: f.serialize(),
        success: function(data) {
            $("#save-notify-div").html('Saved form...');
        }
    });
}

解决问题的一个好方法是在用户离开您的页面时更新您的服务器。您可以通过将处理程序附加到"unload"事件来执行此操作

window.onunload = function(){
    //collect all form field values and make ajax request here
}

执行此操作时要记住的一件事是您无法接收服务器响应。它必须是一种发送后忘记的方法。

实际上我可以看到答案是你监控表单元素的事件(基于你的场景,按键,键下,键和你的字段),然后通过ajax调用将数据发送到你的服务器。您可以使用 jQuery ajax 来简化 http://api.jquery.com/jQuery.ajax/但请注意,这将调用多个请求,这可能会填充并增加服务器上的流量,因此请明智地使用它