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