我不经常使用表单,所以像将表单选择传递到同一页面一样简单似乎非常具有挑战性。我已经检查了一堆stackoverflow的问题,但他们从不说明放置_POST
代码的位置,或者他们将代码发布到另一个页面。我知道我做错了事,这可能很简单。有人可以帮帮我吗?
numbersPage.php
<?php
session_start();
$_POST['here'];
$hello = $_GET['here'];
echo $hello;
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<form name="input" action="numbersPage.php" method="get">
Fav Number:
<select id="">
<optgroup label="Numbers">
<option value="1" name="thing">1</option>
<option value="2" name="thing">2</option>
<option value="3" name="thing">3</option>
<option value="4" name="thing">4</option>
<option value="5" name="thing">5</option>
</optgroup>
</select>
<input type="submit" value="Submit">
</form>
</body>
</html>
答案 0 :(得分:1)
您错过了<select>
名称。用这个:
<select name="here">
表单元素的name属性的值将是$_GET
数组中的索引。另请注意:
$_POST['here'];
毫无意义。我不确定你对此的期望是什么。删除该行。
如果代码很简单,您也会删除此行:
session_start();
进一步请注意,在使用之前,您应该检查某个值是否已正确提交:
if(!isset($_GET['here'])) {
die('GET:here is missing');
} else {
$here = $_GET['here'];
// the value has been submitted. Now validate it!
if(!is_valid($here)) {
die('Bad input');
}
}
// further processing.
答案 1 :(得分:0)
你做得对,但你必须做更多像
如果(isset($ _ REQUEST [ 'submit1'])){
$_POST['here'];
$hello = $_GET['here'];
echo $hello;
}
记住另外一件事,给按钮命名
<input type="submit" value="Submit" name="submit1">