形式与无限的领域

时间:2013-05-14 19:22:10

标签: php mysql arrays forms

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++;
    }
}

2 个答案:

答案 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++;
    }
}

答案 1 :(得分: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++;
  }
}
?>

我发现这种方法更灵活。只是我的两分钱。