无法从表单检索post值


Can not retrieve post value from a form

在page test。php中我有一个类似

的表单
<form action="test.php" method="post">   
<a href="test.php?id=5" name="test_name1">click me</a> 
<a href="test.php?id=5" name="test_name2">click me</a>
<a href="test.php?id=5" name="test_name3">click me</a>
</form>

如果有人点击了这些链接那么我就需要检查

if (isset($_POST['test_name1'])) {  
    //do my work
}

但这对我不起作用。我必须检查所有的链接和形式有大约10个这样的链接。请帮助

看起来像你想要的复选框,你可以试试

<form   method="post">
    <input type="checkbox" name="check_list[]" value="value 1">value one<br>
    <input type="checkbox" name="check_list[]" value="value 2">value tow<br>
    <input type="checkbox" name="check_list[]" value="value 3">value three<br>
    <input type="submit" />
</form>
<?php
if(!empty($_POST['check_list'])) {
    foreach($_POST['check_list'] as $check) {
            echo $check;  
    }
}
?>

表单不是这样工作的。在POST表单中有一个GET链接

样品POST (script.php):

<?php
  if( isset($_POST[submit]) ) {
     //do
  }
?>
<form method="post" action="script.php">
<input type="submit" name="submit" />
</form>
示例GET (script2.php):
<?php
  if( isset($_GET[id]) ) {
    //do
  }
?>
<a href="script2.php?id=2">Click me</a>

这可能是你想要完成的(script3.php):

<?php
  if( isset($_GET[id]) && isset($_GET[name]) ) {
    //do
  }
?>
<a href="script3.php?id=5&name=test_name1">click me</a> 

$_POST方法仅适用于FORM元素,而不适用于Anchor元素。但在您的情况下,您有元素链接到php文件。可以检查isset的id,但不能检查Anchor元素名。 id 还将检查:

if(isset($_GET['id'])) {

}

不能使用链接作为表单参数…你能做的就是创建隐藏值,并有三种不同的形式。虽然这个方法使用按钮,但当使用$_POST而不是$_GET时,传输的数据对用户来说不太明显,因为$_GET显示了链接中的数据。

<form action="test.php" method="post">
<input type="hidden" name="id" value="5">
<input type="input" name="test_name1">
</form>
<form action="test.php" method="post">
<input type="hidden" name="id" value="5">
<input type="input" name="test_name2">
</form>
<form action="test.php" method="post">
<input type="hidden" name="id" value="5">
<input type="input" name="test_name3">
</form>

然后在你的页面顶部,你可以检查…

<?php
if(isset($_POST['test_name1'])){
//they clicked button 1.
}
?>

如果你想从一个链接中获取数据,你可以这样做,并使用$_GET…

<a href="test.php?id=5">click me</a>
<?php
if(isset($_GET['id']){
//they clicked your link.
}
?>