我的手上有一个头颅。
我正在为客户建立一个网站。他们希望以重力形式保存他们的社交分享。所以我有一个初始表单将数据传递到确认页面,该页面包含所有社交共享链接。这是“投票给最好的......”情景,社交分享让你的候选人各自得到额外的投票。
我已经构建了第二个表单来存储社交共享,其中两个字段包含候选数据(通过初始投票中的查询传递)以及他们共享的网络。
整个表单是隐藏字段(无需用户输入),并在用户单击特定网络的共享按钮时提交。
我的问题是:当重力表格提交时,它会从页面中删除表单并用确认文本块替换它,或者刷新页面(完全阻止共享),或者它重定向到一个新的URL (再次阻止分享)。
我尝试了另一种方法,将每个网络保存到自己独立的表单中(因此表单提交不会阻止其他表单)但表单提交会删除所有表单,而不仅仅是它自己的表单。
底线是这样的:我需要一种方法在同一页面上静默提交相同GF表单的多个实例,而不重定向用户,同时还存储他们的信用额度,以便只共享一次链接。
//social share links
<a id="fb" class="share-link" href="javascript:void(0)"
onclick="javascript:genericSocialShare('http://www.facebook.com/sharer.php?u=http://www.oneupthevote.org', 'facebook')">
[icon name="facebook" class="" unprefixed_class=""] SHARE ON FACEBOOK</a>
<a id="tw" class="share-link" href="javascript:void(0)"
onclick="javascript:genericSocialShare('http://twitter.com/share?text=One Up The Vote&url=http://www.oneupthevote.org', 'twitter')">
[icon name="twitter" class="" unprefixed_class=""] SHARE ON TWITTER</a>
<a id="li" class="share-link" href="javascript:void(0)"
onclick="javascript:genericSocialShare('http://www.linkedin.com/shareArticle?mini=true&url=http://www.oneupthevote.org', 'linkedIn')">
[icon name="linkedin" class="" unprefixed_class=""] SHARE ON LINKEDIN</a>
<script>
// pushes share function and sends social network here for form storage
function genericSocialShare(url, ref) {
window.open(url,'sharer','toolbar=0,status=0,width=648,height=395');
//Pull vote from url query string
var urlParams = new URLSearchParams(window.location.search);
var vote = urlParams.get("vote");
//select form by network, insert value and force form submission
if(ref == "facebook") {
document.getElementById("input_2_1").value = vote;
document.getElementById("gform_submit_button_2").click();
} else if(ref == "twitter") {
document.getElementById("input_3_1").value = vote;
document.getElementById("gform_submit_button_3").click();
} else {
document.getElementById("input_4_1").value = vote;
document.getElementById("gform_submit_button_4").click();
}
}
</script>
//hidden gravity forms...forms
[gravityform id="2" title="false" description="false" ajax="true"]
[gravityform id="3" title="false" description="false" ajax="true"]
[gravityform id="4" title="false" description="false" ajax="true"]
有什么建议吗?如果我能提供更多见解,请告诉我。这些都是奇怪的要求,我明白了。