在隐藏的表单字段中输入术语,可以使用HTML和CSS



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

现在,我的想法是给出包含一些字符串的链接(基本上就像一个附属链接),并希望在要提交的隐藏表单字段中输入该字符串,或者以某种方式将该字符串包含在提交的数据中。有没有简单的方法可以做到这一点?

有两种

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

爪哇语

这个解决方案依赖于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()方法。

相关内容

最新更新