2012-08-10 45 views
-1

我正在構建一個具有動態表的應用程序,每次打開基於數據庫中數據的頁表的行和列更改時。 每行是供應商公司,每個colomn是項目標題。所有這些供應商提供相同的項目,所以這個表格中有一個文本框,每個文本框都包含一個TextBox,因此用戶可以鍵入值,表示他們想要從該供應商獲得的水果數量。以下是這個例子。PHP,用TextBox提交一個二維表進行處理

Example Data

所以我現在需要做的是,在進入這些值後,我想通過PHP處理它們,然後看在確認頁面4個不同的報告,例如:寫公司名稱在那之下,他們必須爲每件商品提供什麼,然後是下一家公司,如此等等,直到最後。

我不知道我是否應該爲每個文本框創建不同的類?或ID他們!我應該排列他們嗎?我很困惑。如果任何你們可以幫助,將是美好的

非常感謝

回答

1

我建議你剛纔命名輸入元素的數組。例如:

<input type="text" name="fruits[company1][apple]"> 
<input type="text" name="fruits[company1][berries]"> 
<input type="text" name="fruits[company1][orange]"> 
<input type="text" name="fruits[company1][bannana]"> 

<input type="text" name="fruits[company2][apple]"> 
<input type="text" name="fruits[company2][berries]"> 
<input type="text" name="fruits[company2][orange]"> 
<input type="text" name="fruits[company2][bannana]"> 

或同樣的事情,水果是第一級和公司名稱是第二。它是真的一樣的東西,一般都很容易使用任何一個。取決於您在發佈表單後如何循環數據。對於公司名稱和/或水果,使用ID也許更好。只是這樣做,例如,具有空間的公司名稱仍然有效。

使用上面的表格,你可以像這樣處理數據:

<?php 
foreach($_POST['fruits'] as $company=>$row){ 
    foreach($row as $fruit=>$quantity){ 
     if(!is_numeric($quantity) || $quantity < 0){ 
      $quantity = 0; 
     } 
     echo "You selected {$quantity} {$fruit} from {$company}"; 
    } 
} 
+0

非常感謝。正是我需要的! – 2012-08-13 14:16:08

-1

我會嘗試創建與該項目作爲第一個維度的ID多維數組。就像這樣:

<input type="textbox" name="textbox[<?php echo $row['item_id']; ?>]["apple"]" value="<?php echo $row['apple']; ?>" /> 

然後,在你處理腳本:

foreach ($_POST['textbox'] as $row) 
{ 
    foreach ($row as $key => $val) 
    { 
    $q = "update `items` set `apple` = {$val['apple']} where `item_id` = {$key}"; 
    mysql_query($q); 
    } 
} 
+0

小心! SQL注入。 – nalply 2012-08-10 19:38:02

+0

是的:)顯然,你必須保證這一點。 – user1477388 2012-08-10 19:41:13

+0

哇!你有沒有給我一個讚譽!?這並不意味着成爲最終解決方案+安全機制,我只是向他們展示如何去做。他們可以做他們自己的安全... – user1477388 2012-08-10 19:41:58