我正在尝试在before_action
的表格中发布新记录。但是我表格中的每一行都有一个唯一的ID,并且该ID会放在每个<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
旁边。所以我试图用name
获取id,但到目前为止它已经不成功了。我正在尝试错误的方法还是我做错了什么?如果有人能告诉我出了什么问题,我会很感激。
放在$_GET
<html>
标记
<?php
if (isset($_POST['saveRecord'])) {
if (isset($_POST["newRecord"]) && !empty($_POST["newRecord"])) {
$id = $_GET['record'];
$klant=$_POST['newRecord'].$id;
$query = "INSERT INTO table2
(recordid, recordname)
VALUES
(NULL, '$record')";
mysqli_query($con, $query);
}
}
?>
答案 0 :(得分:2)
不要试图同时执行这两项操作(如果$ _GET变量包含在表单的操作中,则只会传递它。)
该脚本不会从$ _POST中获取记录,因为该字段的名称中包含ID。
将每个记录创建为单独的表单(在WHILE循环中移动整个批次),或者您可以使用字段名称中包含的ID,如下所示:
$newdata = array();
foreach($_POST as $k => $v) {
if ((substr($k,0,9) == 'newRecord') && (!empty($v)) {
$id = substr($k,9);
$klant = $v;
$newdata[$id] = $klant;
}
}
应从字段名称中提取ID,并将其与输入到表单的数据相关联。
答案 1 :(得分:1)
您的按钮名称是
name="saveRecord<?php echo $id; ?>
所以这个条件需要$id
if (isset($_POST['saveRecord'])) {// your id missing
答案 2 :(得分:0)
在while循环中移动您的开始和结束表单标签,它一次只提交1个表单,否则将提交所有输入。