【发布时间】:2010-10-26 04:39:18
【问题描述】:
我已经使用表格创建了网格,但似乎无法弄清楚如何允许用户选择网格中的特定框。 (即用户选择 3 个框,每个框都有 xy 坐标,我需要将其存储在数据库中)
也许我不应该使用表格,而是使用 div?
任何帮助将不胜感激。
注意:我是 PHP 新手,所以请不要以为我知道很多 :)
【问题讨论】:
我已经使用表格创建了网格,但似乎无法弄清楚如何允许用户选择网格中的特定框。 (即用户选择 3 个框,每个框都有 xy 坐标,我需要将其存储在数据库中)
也许我不应该使用表格,而是使用 div?
任何帮助将不胜感激。
注意:我是 PHP 新手,所以请不要以为我知道很多 :)
【问题讨论】:
看起来布局对您的问题并不重要,无论是基于表格还是基于 div。如果我理解正确,您需要获取像 3-2 这样的坐标,以防用户点击位于第二列第 3 格的框。
为此,您只需为变量使用数组数组。
<input type="checkbox" name="boxes[<?php echo $i;?>][<?php echo $j;?>]" value="1" />
然后你适当地增加 i 和 j 变量以获取从 box[0][0] 到 box[9][9] 的盒子名称。
最后,在服务器端,当用户提交表单时,您可以像这样检查值:
$boxes = $_POST['boxes'];
for (int i=0; i<9; i++) {
for (int j=0; j<9; j++) {
if (isset($boxes[$i][$j])) {
// here you have your coordinates for a selected box
}
}
}
【讨论】:
我一般会避开桌子。
如果您在表单中制作了一个按钮网格,您可以:
【讨论】:
大部分取决于你必须做什么,但这个简单的例子应该完全符合你的需要。考虑使用 JS 框架。
<style>
td{empty-cells: show;}
</style>
<script>
function cellSelected(this,i,q)
{
alert("Cell ("+i+","+q+")");
}
</script>
<?php
echo '<table>';
for($i=0;$i<10;$i++)
{
echo '<tr>';
for($q=0;$q<10;$q++)
{
echo '<td onClick="cellSelected(this,'.$i.','.$q.')"></td>';
}
echo '</tr>';
}
echo '</table>';
?>
【讨论】:
谢谢大家。
这就是我最终做的事情
从上面组合了两种解决方案。希望随着我学到更多知识,我可以为这些讨论做出贡献。
【讨论】: