我有两个文件......
a.php只会
<html>
<head>
<script>
var randomnumber=new Array();
for(var i=1; i<=10; i++)
{
randomnumber[i]=Math.random();
}
document.getElementById("h_field").value = randomnumber[1];
</script>
</head>
<body>
<form id="myform" action="process.php?var1=h_field" method="GET" >
<input type="hidden" id ="h_field">
<input type="Submit" value="my button">
</form>
</body>
</html>
b.php
<?
echo $_GET['var1'];
?>
我打算做的是使用JavaScript创建一个随机数组。
然后将此数组的第一个元素放在id为h_field
的隐藏字段中。
然后创建一个url变量并将隐藏字段的值赋给该变量。最后$_GET
,然后使用将处理表单的页面将其打印到屏幕上。
问题
答案 0 :(得分:0)
您的隐藏输入需要name
属性
<input type="hidden" id ="h_field" name="h_field" />
答案 1 :(得分:0)
当您的脚本位于<head></head>
部分时,它会在加载<body></body>
部分之前立即执行:<input type="hidden" id ="h_field">
此时可能甚至不存在。
<script></script>
声明后将<body></body>
部分移至<form></form>
部分。window.onload
的事件处理程序。name
属性,如 @ DevZer0 所述。修正脚本:
<html>
<head>
<script>
function init(){
var randomnumber = [];
for(var i=1; i<=10; i++)
{
randomnumber[i] = Math.random();
}
document.getElementById("h_field").value = randomnumber[1];
}
window.onload = init;
</script>
</head>
<body>
<form id="myform" action="process.php?var1=h_field" method="GET" >
<input type="hidden" name="h_field" id="h_field">
<input type="Submit" value="my button">
</form>
</body>
</html>
答案 2 :(得分:0)
为什么要创建一个新变量。 GET会自动将表单内的所有输入添加为GET变量。所以你可以像这样使用它
<form id="myform" action="b.php" method="GET" >
<input type="hidden" id ="h_field" name="h_field">
<input type="Submit" value="my button">
</form>
您可以从h_field获取值,如:$_GET['h_field'];
您的javascript代码也会在加载html之前运行,因此您的javascript代码会出现错误Cannot set property 'value' of null
。
这是一个完整的代码
的 a.php只会强> 的
<html>
<head>
<script>
function LoadArray(){
var randomnumber=new Array();
for(var i=0; i<=10; i++)
{
randomnumber[i]=Math.random();
}
document.getElementById("h_field").value = randomnumber[0];
}
window.onload = LoadArray;
</script>
</head>
<body>
<form id="myform" action="b.php" method="GET" >
<input type="hidden" id ="h_field" name="h_field">
<input type="Submit" value="my button">
</form>
</body>
</html>
并且在你的 b.php 上总是在创建php标签时使用php <?php ?>
的 b.php 强> 的
<?php
echo $_GET['h_field'];
?>