2013-05-14 67 views
1

Mockup of the form I'm trying to submit through PHP in rows形式無限域

我有了一個[添加域]選項,使其能夠添加幾乎無限的項目號和說明的形式。

這些字段被命名爲:item[]desc[](數組括號)。

我的問題是,我將如何提交這些信息與PHP和MySQL,以便每行(項目和說明)提交爲數據庫中的自己的行?

我已經試過像提交項目的多種方法[0]和desc [0]無濟於事:(

感謝所有的幫助提前一起

編輯:!下面是我一直在

$count = 0 
foreach ($_POST['item'] as $item) { 
    $query = "INSERT INTO items (item, desc) VALUES ('" . $item[$count] . "', '" . $_POST['desc'][$count] . "')"; 
     // Script simplified as it is quite complex. 
    if ($query_result) { 
     $count++; 
    } 
} 
+0

爲什麼提交'item [0]'和'desc [0]'一起失敗? –

+2

使用for或foreach循環。同時向我們展示您嘗試的PHP代碼。 – user1048676

+0

有趣 - 我現在實際上構建了一個幾乎完全相同的系統。 –

回答

3

,你可以通過輸入字段的任何一個循環中使用foreach循環,然後進入其他領域嘗試使用......(對不起,不是用數組偉大的...)。

foreach($_POST['item'] as $key => $item){ 
    //your code 
    $desc = $_POST['desc'][$key]; 
} 

編輯:按你的代碼腳本就會像

$count = 0 
foreach ($_POST['item'] as $key => $item) { 
    $query = "INSERT INTO items (item, desc) VALUES ('" . $item . "', '" . $_POST['desc'][$key] . "')"; 
     // Script simplified as it is quite complex. 
    if ($query_result) { 
     $count++; 
    } 
} 
+0

這會給我$ item [0]和$ desc [0],$ item [1]和$ desc [1]等? –

+0

是的,它會以提交的形式給你所有的行。 – Sid

+0

儘管這有效 - 我會建議做一點不同的...這種方式可能會有點混淆,看看和領會(即迅速看到desc的價值來自何處)...看到我的答案替代。 –

2

爲了進一步幫助你,我可能會建議以下。

名稱的領域,像這樣:

line[1][item] 
line[1][desc] 

line[2][item] 
line[2][desc] 

etc... 

然後在PHP中的數據會更有「意義上的」觀看圖像時:

<?php 
$count = 0; 
foreach ($_POST['line'] as $line => $vals) { 
    $item = $vals['item']; /* do some kind of input validation here */ 
    $desc = $vals['desc']; /* do some kind of input validation here */ 

    /* if no errors, continue */ 

    $sql = "INSERT INTO `items` (`item`,`desc`) VALUES ('$item', '$desc')"; 
    if (mysql_query ($sql)) { 
    $count++; 
    } 
} 
?> 

我發現這個方法更加靈活。只是我的兩分錢。

Luke