使用html和css输入隐藏表单字段的术语?

时间:2016-03-14 15:14:43

标签: html css forms

我在我的网站上用HTML / CSS创建了一个表单。

现在,我的想法是提供包含一些字符串的链接(基本上像联盟链接),并希望将该字符串输入到要提交的隐藏表单字段中,或者在某种程度上,在该字符串中包含该字符串提交的数据。 有一个简单的方法吗?

1 个答案:

答案 0 :(得分:0)

有两种方法可以解决这个问题,两种方法都使用您分发的链接中的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的帮助。