2010-10-25 61 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]
  • 表單提交後隱藏輸入中的值

從上面合併的兩個解決方案的排序。希望我可以爲這些討論做出貢獻,因爲我學到了更多。

相關問題