有两种方法可以解决这个问题,这两种方法都在您分发的链接中使用GET 变量。
首先,让我们假设——例如目的——你的特殊字符串是abc123。然后,您将分发遵循http://example.com/my/form/?affiliate=abc123 形式的链接。
假设这里有两种解决方案,一种使用 PHP,另一种使用 Javascript。
PHP 解决方案
这很简单,只要你设置一个隐藏字段。
<input type='hidden' name='affiliate' value='<?= htmlspecialchars($_GET['affiliate'], ENT_QUOTES, 'UTF-8'); ?>' />
更新:添加了 htmlspecialchars() 调用以转义任何输入,以防止用户手动设置 GET 变量时出现安全问题。
Javascript 解决方案
HTML
<input type='hidden' id='affiliate-input' name='affiliate' />
Javascript
此解决方案依赖于jQuery。如果您想要纯 JS 解决方案,请告诉我。
var $_GET = {};
// When the page loads, set the input value
$(document).ready(function(){
setupGetVariables();
var affiliateId = $_GET["affiliate"];
$("#affiliate-input").val(affiliateId);
});
function setupGetVariables()
{
if(document.location.toString().indexOf('?') !== -1) {
var query = document.location
.toString()
// get the query string
.replace(/^.*?\?/, '')
// and remove any existing hash string (thanks, @vrijdenker)
.replace(/#.*$/, '')
.split('&');
for(var i=0, l=query.length; i<l; i++) {
var aux = decodeURIComponent(query[i]).split('=');
$_GET[aux[0]] = aux[1];
}
}
}
setupGetVariables() 方法得到了this answer 的帮助。