php表单只保存最后一个输入字段值

时间:2016-05-11 16:19:12

标签: php

我有一张简单的桌子"考试"列id,标题和包含可变数量的考试输入字段的表单。

但是当提交表单时,最后一个值将被保存三次。

我认为这是因为$ sql_insert语句具有相同的值。

如何更改在$ sql_insert语句中提交不同值的代码?

echo '<form action="" method="post">';
    for ($i = 1; $i <= $student['passed_exams']; ++$i) {
        echo '<label>Exams '.$i.' :</label>';
        echo '<input type="text" id="id['.$i.']" name="title" placeholder="passed Exam" />';
        echo '<br />';
    }
echo '<input type="submit" value=" Submit " name="submit" /></form>';

if (isset($_POST['submit'])) {
    for ($i = 0; $i < $student['passed_exams']; ++$i) {
      $sql_insert = "INSERT INTO exams (title) VALUES ('".$_POST['title']."')";
      $dbConnection->query($sql_insert);
    }
    $dbConnection->close();
}

2 个答案:

答案 0 :(得分:2)

Php需要名称作为数组

echo '<form action="" method="post">';
    for ($i = 1; $i <= $student['passed_exams']; ++$i) {
        echo '<label>Exams '.$i.' :</label>';
        echo '<input type="text" id="id['.$i.']" name="title['.$i.']" placeholder="passed Exam" />';
        echo '<br />';
    }
echo '<input type="submit" value=" Submit " name="submit" /></form>';

if (isset($_POST['submit'])) {
    for ($i = 0; $i < $student['passed_exams']; ++$i) {
      $sql_insert = "INSERT INTO exams (title) VALUES ('".$_POST['title'][$i]."')";
      $dbConnection->query($sql_insert);
    }
    $dbConnection->close();
}

答案 1 :(得分:1)

您需要首先将标题数组设为

 name="title['.$id.']"

然后你必须把它保存为

$_POST['title'][$id]