2010-10-25 59 views
3

我已经创建了网格使用表,但似乎无法弄清楚如何让用户选择网格中的特定框。 (即用户选择3个盒子,每个盒子都有xy坐标,我需要将其存储在数据库中)HTML/PHP的 - 我需要创建一个10×10的网格与100盒,每个需要可选

也许我不应该使用表格,而是使用div?

任何帮助,将不胜感激。

注:我是一个新手到PHP,所以请不要以为我知道很多:)

回答

2

它不看,布局事项您的问题,无论是表或DIV为主。如果我理解正确,您需要获得像3-2这样的坐标,以防用户点击位于第二列第三格上的框。

要做到这一点,你只需要为你的变量使用一个数组数组。

<input type="checkbox" name="boxes[<?php echo $i;?>][<?php echo $j;?>]" value="1" /> 

然后,您适当地增加i和j变量以从框[0] [0]到框[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 
    } 
    } 
} 
0

大部分取决于你必须做什么,但这个简单的例子应该做的正是你需要的。考虑使用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>'; 
?> 
+0

我明白这是做什么。有一个问题,但: 解析错误:语法错误,意外'=',期待';'第21行中的/Users/satjotsawhney/localhost/boxes/test1.php 第21行为:for(i = 0; i <10; i ++) – Satjot 2010-10-25 03:22:04

+0

在PHP部分中,我们可能需要使用$ i和$ q 。 – JSchaefer 2010-10-25 03:45:21

+0

@JSchaefer,@Satjot:切换语言往往没有帮助,一些语法错误抱歉:) – Cesar 2010-10-25 04:12:27

0

我会避开一般的表格。

如果您进行了按钮的网格,在表单中,您可以:

  • 编辑自己的风格,看起来像细胞
  • 提交表单当用户点击
  • 使用POST数据到突出显示点击的那个
0

谢谢大家。

这里就是我最后做

  • 分配的ID给每个小区/ TD [00] - 存储单元的ID在一个隐藏的输入
  • 记录的onclick调用的函数[99]
  • 表单提交后隐藏输入中的值

从上面合并的两个解决方案的排序。希望我可以为这些讨论做出贡献,因为我学到了更多。

相关问题