1

我有一个从我的数据库收集信息的 while 循环。然后我像这样呼应出来......

$num = 1;
$i=0;
$drop = 'yes';
echo '<form id="drop_form" method="post" action="here.php">';

while( $row = mysql_fetch_assoc($query)) {

   $player[] = $row['player'];

   echo '<tr class="rows"><td>'; echo'<input type="hidden"
   name="yeah" value="'.$num.'"/>
   <input name="submit" type="submit" value="submit"/>';

   echo $player[$i].'</td></tr>'; 

   $num++;                         
   $i++;
}
echo '</table>';
echo '</form>';

当我发布我的$num变量时,它总是显示为最后一个可能的数字。因此,如果该查询中有 7 行,则数字将为 7。我希望能够单击提交按钮并在提交表单中获取隐藏值。

Player 
mike    hidden number = 1
chris   hidden number = 2
jim     hidden number = 3
dan     hidden number = 4
4

2 回答 2

1

您的表单正在提交类似yeah=1&yeah=2&yeah=3... 这相当于以下 PHP:

$_POST['yeah'] = 1;
$_POST['yeah'] = 2;
$_POST['yeah'] = 3;

从这里你可以看到变量被覆盖了。

尝试使用name="yeah[]",因为这将产生一个数组,如下所示:

$_POST['yeah'][] = 1;
$_POST['yeah'][] = 2;
$_POST['yeah'][] = 3;

导致Array(1,2,3);

于 2013-07-10T17:49:29.907 回答
1

在你的 while 循环开始之前添加这个:$player = array();

您应该始终在循环之前定义数组:)

希望这可以帮助!:)

还:

1.name="yeah"更改name=yeah[]为您希望此输入为数组。2.将提交按钮移到外部,while loop因为您应该只需要其中一个。

于 2013-07-10T18:01:59.617 回答