我已经查看过这里的一些帖子,但我仍在努力让我的代码正常工作....
我有一个动态创建的表单,所以我永远不会知道它会有多少行,但列数是静态的。这是我目前的代码......
echo '<form name = "confirmPlayers" enctype="multipart/form-data" action="page.php" method="POST">';
echo '<input type="hidden" name="confirm" value="1"/>';
echo '<input type="hidden" name="pg_function" value="match"/>';
echo '<table border = "1">';
echo '<tr> <td colspan = "7"> <b>Matched Members</b></td> </tr>';
echo '<tr> <td> Match </td> <td>Division</td> <td>Number</td> <td>Upload Number</td> <td>KDGA Name</td> <td>Upload Name</td> <td>Score</td></tr>';
while($row = mysql_fetch_array($result)){
echo "<tr>";
echo '<td> <input type="checkbox" name="match_chkBox[]" value="1" checked>';
echo '<td> ' . $row['division'] . ' </td>';
echo '<td> ' . $row['mplayer_number'] . ' </td>';
echo '<td> ' . $row['tplayer_number'] . ' </td>';
echo '<td> ' . $row['mfirst_name'] . ' ' . $row['mlast_name'] . ' </td>';
echo '<td> ' . $row['tfirst_name'] . ' ' . $row['tlast_name'] . ' </td>';
echo '<td> ' . $row['score'] . ' </td>';
echo "</tr>";
}
echo '<tr> <td>';
echo '<input type="submit" value="Submit" />';
echo '</td> </tr>';
echo '</table> </form>';
我已经尝试了几种创建数组的变体,但似乎只是造成一团糟。我基本上需要返回每个单元格的所有信息,以便传递给数据库进行进一步处理。我希望返回一个数组,为生成的表中的每个对应行添加一行,然后显示每列的键/索引。现在,如果我使用print_r($ _ POST ['match_chkBox']);然后它正确地返回我提交之前检查的行数,但任何其他更改......不是那么漂亮。
感谢你能给予的任何帮助......这让我疯了!
答案 0 :(得分:1)
尝试给予值唯一ID
echo '<td> <input type="checkbox" name="match_chkBox[]" value=value=\"".$row['id']."\"checked>';
答案 1 :(得分:0)
如果我是你,我将仅发布$ row [id](由angel定义),并从我的PHP代码中获取数据库中的相应数据。
但如果您想随身携带所有数据,您只需执行以下操作即可。
<pre>
$i=0;
while($row = mysql_fetch_array($result)){
$i++;
echo "<tr>";
echo '<td> <input type="checkbox" name="match_chkBox[$i]" value="'.$row['id'].'" checked>';
echo '<td> ' . $row['division'] . ' <input type="hidden" name="division['.$i.']"> </td>';
echo '<td> ' . $row['mplayer_number'] . ' <input type="hidden" name="mplayer_number['.$i.']"> </td>';
// and so on....
echo "</tr>";
}
</pre>
因为html表单只向服务器发送了选中复选框,你可以使用以下代码检查用户选择
<pre>
foreach($_POST['match_chkBox'] as $k=>$value) {
$divi = division[$k];
$mplay = mplayer_number[$k];
//now insert into your database.
}
</pre>
希望这会有所帮助
答案 2 :(得分:0)
将复选框的值设置为该行的唯一键,当发布表单时,match_chkBox []将包含唯一键。
echo"<input type='checkbox' name='match_chkBox[]' value=\"$row[unique_id]\" />";
使用视图源查看每行值是否设置为该行的unique_id