我有一个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
答案 0 :(得分: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);
答案 1 :(得分:1)
在while循环开始之前添加:$player = array();
你应该总是在循环之前定义数组:)
希望这有帮助! :)
同时强>
1.将name="yeah"
更改为name=yeah[]
,因为您希望此输入为数组。
2.移动while loop
之外的提交按钮,因为您只需要其中一个。