将HTML页面中的值(不是表单的一部分)传递给php页面

时间:2016-05-04 21:45:27

标签: javascript php html forms get

我理解在页面之间传递变量的一般方法是使用表单,在表单中包含这些元素,如下所示,并将其作为$_GET['year']$_GET['dropdown']

进行访问
<body>
<form method="get" action="index.php">
    <select name="language">        
        <option value = "english">English</option>
        <option value = "tagalog">Tagalog</option>
    </select>
    </br>

    <select name="year">
        <option value="2010">2010</option>
        <option value="2011">2011</option>
    </select>

    <input type="submit" value="submit">
</form>
</body>

然而,除了传递这两个变量,即yeardropdown之外,我还想传递另一个变量,它不是表单的一部分。因此,虽然表单中只有两个元素,但我希望GET URL看起来如下

http://localhost:63342/ApplicationName/php/index.php?language=tagalog&year=2010&randomNumber=1932932

请注意网址末尾的 randomNumber = 1932932

我无法使用会话变量,因为在同一个浏览器和同一个用户中,我希望不同的标签对应不同的值。

4 个答案:

答案 0 :(得分:2)

您可以在表单

中使用隐藏的输入
<input type="hidden" value="something" name="name" />

答案 1 :(得分:2)

如果你不想使用像jQuery这样的东西(比原生JavaScript更容易),你可以为提交按钮创建一个简单的点击处理程序:

<body>
<form method="get" action="test.php">
    <select name="language">        
        <option value = "english">English</option>
        <option value = "tagalog">Tagalog</option>
    </select>
    <select name="year">
        <option value="2010">2010</option>
        <option value="2011">2011</option>
    </select>

    <input type="submit" value="submit" onclick="submitForm()">
</form>
</body>
<script>
    function submitForm() {
        var randomNumber = Math.floor((Math.random() * 10000) + 1); 
        var hiddenfield = document.createElement('input');
        hiddenfield.setAttribute('type', 'hidden');
        hiddenfield.name = 'randomnumber';
        hiddenfield.value = randomNumber;

        document.getElementsByTagName('form')[0].appendChild(hiddenfield);
    }
</script>

这将在发布之前向表单添加一个隐藏字段,并将1到10000之间的随机数添加到隐藏字段。

答案 2 :(得分:0)

您可以选择的一个选项是在Ajax中构建get方法。在这里,您可以访问页面中的所有元素并将其传递到您的网址中。这样您就不会限制您的参数&#39;仅限表单中的元素。此处显示了一个示例http://www.w3schools.com/jquery/jquery_ajax_get_post.asp

答案 3 :(得分:0)

如果你仍然使用GET,你可以使用javascript根据输入创建一个URL,然后导航到它而不是提交表单。

main