将$ _GET与$ _POST一起使用

时间:2015-05-26 12:19:32

标签: php

我正在尝试在before_action的表格中发布新记录。但是我表格中的每一行都有一个唯一的ID,并且该ID会放在每个<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">旁边。所以我试图用name获取id,但到目前为止它已经不成功了。我正在尝试错误的方法还是我做错了什么?如果有人能告诉我出了什么问题,我会很感激。

放在$_GET

之上的PHP
<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);
        }
    }
?>

3 个答案:

答案 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个表单,否则将提交所有输入。