在提交表单时将地理位置信息添加到隐藏字段中的联系人

问题描述 投票:0回答:0

我在 Sendinblue(电子邮件营销平台)中创建一个表单,当潜在客户填写表单以订阅列表时,当他单击“提交”按钮时,以下隐藏字段会根据以下信息填充此信息发件人的 IP:IP、国家、地区、城市和邮政编码。在这种情况下,Sendinblue 平台中的每个联系人都将关联其位置信息,因此可以根据他们的位置发送针对特定联系人的活动。

为此,我在 Sendinblue 中创建了这 5 个新属性:IPADDRESS、IPCOUNTRY、IPREGION、IPCITY、IPZIP(抱歉大写字母,这是 Sendinblue 格式化它们的方式)。然后,我以 的形式应用此代码(为清楚起见,我对其进行了简化)。请特别注意我在表单中添加的onsubmit=""参数:

<form id="sib-form" method="POST" data-type="subscription" onsubmit="guardarInfoGeo();">

    <input class="input " maxlength="200" type="text" id="NAME" name="NAME" autocomplete="off" placeholder="NAME" />
    <input class="input " type="text" id="EMAIL" name="EMAIL" autocomplete="off" placeholder="EMAIL" data-required="true" required />

    <input type="hidden" id="IPADDRESS" name="IPADDRESS" value="">
    <input type="hidden" id="IPCOUNTRY" name="IPCOUNTRY" value="">
    <input type="hidden" id="IPREGION" name="IPREGION" value="">
    <input type="hidden" id="IPCITY" name="IPCITY" value="">
    <input type="hidden" id="IPZIP" name="IPZIP" value="">

    <button form="sib-form" type="submit">
</form>

还有这个脚本代码,我把它放在表格代码下面

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<script>
function guardarInfoGeo() {
  $(document).ready(function() {
  $.getJSON('https://ipapi.co/json/', function(ipdata) {
    var IpAddress = ipdata.ip;
    var IpCountry = ipdata.country_name;
    var IpRegion = ipdata.region;
    var IpCity = ipdata.city;
    var IpZip = ipdata.postal;

    document.getElementById("IPADDRESS").value = IpAddress;    
    document.getElementById("IPCOUNTRY").value = IpCountry;
    document.getElementById("IPREGION").value = IpRegion;
    document.getElementById("IPCITY").value = IpCity;
    document.getElementById("IPZIP").value = IpZip;
  });
});

}
</script>

当我运行表单时,表单在订阅联系人方面起作用,但是 5 个隐藏字段是空的,没有一个填充信息。我尝试了不同的方法,但似乎没有任何效果。有任何想法吗。非常感谢您的帮助!!!

forms submit hidden-field ip-geolocation
© www.soinside.com 2019 - 2024. All rights reserved.