我在我的网站上用HTML / CSS创建了一个表单。
现在,我的想法是提供包含一些字符串的链接(基本上像联盟链接),并希望将该字符串输入到要提交的隐藏表单字段中,或者在某种程度上,在该字符串中包含该字符串提交的数据。 有一个简单的方法吗?
答案 0 :(得分:0)
有两种方法可以解决这个问题,两种方法都使用您分发的链接中的GET
变量。
首先,让我们假设 - 例如 - 你的目的 - 你的特殊字符串是abc123
。然后,您将分发一个http://example.com/my/form/?affiliate=abc123
形式的链接。
假设有两个解决方案,一个是PHP,另一个是Javascript。
只要你设置一个隐藏的字段,这个就相当容易了。
<input type='hidden' name='affiliate' value='<?= htmlspecialchars($_GET['affiliate'], ENT_QUOTES, 'UTF-8'); ?>' />
更新:添加了htmlspecialchars()
调用以转义任何输入,以防止用户手动设置GET
变量时出现安全问题。
<input type='hidden' id='affiliate-input' name='affiliate' />
此解决方案依赖于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的帮助。