提问人:Christian Misch 提问时间:4/22/2023 最后编辑:Christian Misch 更新时间:4/22/2023 访问量:45
将地理位置添加到表单中的联系人
Add Geolocation to contact in a form
问:
我正在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 个隐藏字段为空,它们都没有填充信息。我尝试了不同的方法,但似乎没有任何效果。任何想法。非常感谢您的帮助!!
答: 暂无答案
评论