将地理位置添加到表单中的联系人

Add Geolocation to contact in a form

提问人:Christian Misch 提问时间:4/22/2023 最后编辑:Christian Misch 更新时间:4/22/2023 访问量:45

问:

我正在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 个隐藏字段为空,它们都没有填充信息。我尝试了不同的方法,但似乎没有任何效果。任何想法。非常感谢您的帮助!!

表单 提交 隐藏字段 IP-Geolocation

评论


答: 暂无答案