选中时从表中插入多个数组项

时间:2014-02-15 16:19:11

标签: php html mysql loops

我有一个从mysql数据库填充的表。

echo "<td>" . '<input class="datepicker" type="text" name="date[]" value="" />' . "</td>";
echo "<td>" . '<input type="text" name="time[]" value="" />' . "</td>";
echo "<td>" . '<input type="text" name="note[]" value="" />' . "</td>";
echo "<td>" . "<label class='checkbox'><input type='checkbox' name='select[]' value='{$row['mbrid']}'" . "</td>";

这会创建一个带有文本框的表格,然后用户可以勾选相应的选项并提交,然后将文本字段插入到相关的行中。

这不能正常工作,但如果我勾选前几行似乎有效,但如果我混合选择它的命中并错过将插入的内容。不确定它是否是我的循环?

   $date = $_POST['date'];  
   $time = $_POST['time'];
   $note = $_POST['note'];
   $select = $_POST['select'];


    $qry = "INSERT INTO bookings(mbrid, staff, date, time, note)
    VALUES (?,?,?,?,?)";
    $stmt = $mysqli->prepare($qry);

    for($i=0; $i < $count; $i++)
    {
    $stmt->bind_param('issss', $select[$i], $staff, $date[$i], $time[$i], $note[$i]);
    $stmt->execute();
    }
    $stmt->close();

非常感谢一些帮助!

1 个答案:

答案 0 :(得分:0)

仅发布选中的复选框,因此复选框键与其他字段键不匹配。因此,您需要将复选框链接到其他字段。最简单的方法是将字段的键设置为等于复选框值(即$row['mbrid']

echo "<td>" . '<input class="datepicker" type="text" name="date['.$row['mbrid'].']" value="" />' . "</td>";
echo "<td>" . '<input type="text" name="time['.$row['mbrid'].']" value="" />' . "</td>";
echo "<td>" . '<input type="text" name="note['.$row['mbrid'].']" value="" />' . "</td>";
echo "<td>" . "<label class='checkbox'><input type='checkbox' name='select[]' value='{$row['mbrid']}'." . "</td>";

然后你的PHP代码就像

$date = $_POST['date'];  
$time = $_POST['time'];
$note = $_POST['note'];
$select = $_POST['select'];

$qry = "INSERT INTO bookings(mbrid, staff, date, time, note)
VALUES (?,?,?,?,?)";
$stmt = $mysqli->prepare($qry);

foreach($select as $key=>$value)
{
$stmt->bind_param('issss', $select[$key], $staff, $date[$value], $time[$value], $note[$value]);
$stmt->execute();
}
$stmt->close();
相关问题