表单提交给Self(PHP)

表单提交给Self(PHP),php,html,forms,Php,Html,Forms,我有一个动态构建的调查页面,从数据库中获取相关问题和答案,并生成表单。我还设置了一个检查,以确保URL中的调查id存在于表中,如果不存在,请重定向到index.php,并且它是一个有效的数字,而不是字母表 最初,我将表单submit设置为将数据发送到另一个php文件并在那里进行处理。但是,我需要处理同一页面中的数据。然而,我试图做一些改变- 1提交后,页面重定向到index.php,因为缺少survey_id URL元素。 2如果我将表单提交到survey_frontend.php?survey

我有一个动态构建的调查页面,从数据库中获取相关问题和答案,并生成表单。我还设置了一个检查,以确保URL中的调查id存在于表中,如果不存在,请重定向到index.php,并且它是一个有效的数字,而不是字母表

最初,我将表单submit设置为将数据发送到另一个php文件并在那里进行处理。但是,我需要处理同一页面中的数据。然而,我试图做一些改变-

1提交后,页面重定向到index.php,因为缺少survey_id URL元素。 2如果我将表单提交到survey_frontend.php?survey_id=currentID,那么表单只需重新加载,没有任何更改

我相信代码在这种情况下是完全相关的,因此太大,无法在这里发布。代码可在此处找到:


目前,我只是想让Echo Congreats语句在提交时起作用,但这并没有发生。

$\u POST[]通过名称访问表单控件,通过名称属性提供。目前,您的代码无法检测到提交按钮,因此您的页面将永远无法向任何人表示祝贺。 给你的按钮起个名字,它就会发光

<input type="submit" **name="submit"** value="Submit!" />

这里是我试图解释的总结

<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
      // do your job here 
      die("<span class='success'>Your form submitted!</span>");

} else if ($_SERVER['REQUEST_METHOD'] === 'GET'){
      // get your values from db and check survey id
      if ($_GET["surveyID"] != $id_from_db) {
        $URL="/index.php";
        header ("Location: $URL");
      } else {
          // If you have validation, do it here. Do not directly use it on html form
      }
} else {
      die("<span class='success'>Operation not supported!</span>");
}

// Your html

打印的是什么;返回?为什么不在表单提交时发送surveyID?在表单提交时发送surveyID只会重新打印整个表单,不是吗?理想情况下,我希望表格消失,只是一条写着“感谢您抽出时间”或“感谢您”的信息something@RoySchoep-返回刚才尝试的每个问题的答案-确定我发布了一个复杂的问题,并立即将其标记为-漂亮。如果我能向你展示我在这个问题上投入的大量研究。。。你是上帝!!哇,我从没想到会这样。非常感谢你解决了这个问题,这简直是在折磨我的大脑!