2012-09-24 73 views
1

我需要輸入特定多邊形的UTM座標到HTML表單。我將使用php處理表單值以插入到mysql數據庫中。但是多邊形的數量和多邊形的點可以是多種多樣的。所以文本輸入框可以在窗體上進行調整。自定義輸入數量

+---------+------------+-----------+-------------+ 
| polygon | point  | y   | x   | 
+---------+------------+-----------+-------------+ 
| 1  | 1   | 0   | 0   | 
+---------+------------+-----------+-------------+ 
| 1  | 2   | 0   | 50   | 
+---------+------------+-----------+-------------+ 
| 1  | 3   | 50  | 50   | 
+---------+------------+-----------+-------------+ 
| 1  | 4   | 50  | 0   | 
+---------+------------+-----------+-------------+ 
| 2  | 1   | 50  | 75   | 
+---------+------------+-----------+-------------+ 
| 2  | 2   | 50  | 100   | 
+---------+------------+-----------+-------------+ 
| 2  | 3   | 75  | 75   | 
+---------+------------+-----------+-------------+ 

讓用戶輸入點數來創建輸入框似乎是一個很好的做法給我。然而,我不確定是序列化值和使用php處理值的最佳實踐嗎?我應該使用JSON還是僅使用索引輸入名稱?或者是其他東西?

下面是一個簡單的例子: http://jsfiddle.net/UVZNq/

回答

1

你可以嘗試這樣的事情:

+---------+------------+-----------+-------------+ 
| polygon | point  | y   | x   | 
+---------+------------+-----------+-------------+ 

           *************** 
           * Add Another * 
           *************** 

當用戶按下「添加Another`使用Ajax提交當前點並轉換現有的(已提交)點爲簡單的文本(而非文本框)和添加一組新的文本框。

這種方式的PHP腳本是一次處理一個單一的點和UI也不混亂。

+0

不錯的。但不確定這是MySQL的最佳做法。 – tuze

+0

你爲什麼這麼認爲? – WeaklyTyped

0

,如果你只是命名您的輸入,比如一個共同的名字(用括號)

<td><input type="text" name="ply[]" /></td> 
<td><input type="text" name="pnt[]" /></td> 
<td><input type="text" name="y[]"/></td> 
<td><input type="text" name="x[]" /></td> 

你應該能夠取回在$ _POST或$ _GET數組(取決於你的表單的方法)包含所有的值。例如:

print_r($_GET['ply']); 

會打印您的所有層輸入值。

+0

如果你看看我的例子,你可以看到這是我目前正在做的。你也可以解釋一下這個表單中應該有多少個輸入框? – tuze

+0

我不確定我是否完全理解您的問題,但如果您詢問輸入框的*號*,您可以隨心所欲。然後你會在PHP文件中使用foreach循環來處理它們。這裏接受的答案可能會給你一個想法:http://stackoverflow.com/questions/2433727/submitting-a-multidimensional-array-via-post-with-php – Rorchackh

+0

試圖找到一個更方便的方法。 – tuze