我知道在页面之间传递变量的一般方法是有一个表单,在表单中有这些元素,如下所示,并将它们作为$_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>
然而,在传递这两个变量,即year
和dropdown
的同时,我还想传递另一个变量,它不是表单的一部分。因此,尽管表单中只有两个元素,但我希望GET URL看起来如下
http://localhost:63342/ApplicationName/php/index.php?language=tagalog&year=2010&randomNumber=1932932
请注意URL末尾的randomNumber=11932932。
我不能使用会话变量,因为在同一浏览器中,对于同一用户,我希望不同的选项卡对应不同的值。
如果你不想使用像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之间的随机数。
您可以在表单中使用隐藏输入
<input type="hidden" value="something" name="name" />
您可以选择在Ajax中构建get方法。在这里,您可以访问页面中的所有元素,并将传递到您的url中。这样,您就不会将"get parameters"限制为仅表单中的元素http://www.w3schools.com/jquery/jquery_ajax_get_post.asp
如果您仍然使用GET,您可以使用javascript根据输入创建URL,并导航到它,而不是提交表单。
<body>
<select name="language" id="lang">
<option value = "english">English</option>
<option value = "tagalog">Tagalog</option>
</select>
</br>
<select name="year" id="year">
<option value="2010">2010</option>
<option value="2011">2011</option>
</select>
<input type="button" onclick="nav()" value="submit">
<script>
function nav(){
var url = 'index.php?';
var ids = ['lang', 'year'];
var input;
for (var i = 0; i < ids.length; i++) {
input = document.getElementById(ids[i]);
url += encodeURIComponent(input.name) + '=' + encodeURIComponent(input.value) + '&';
};
url += 'randomNumber=' + 1932932; // generate a number here
document.location = url;
}
</script>
</body>