我有一个动态构建的调查页面,可以从数据库中获取相关问题和答案并生成表单。我还设置了一个检查,以确保表中存在URL中的“survey_id”(如果没有,重定向到index.php),并且它是有效数字而不是字母表。
最初,我已将表单设置为将数据发送到另一个php文件并在那里处理。但是,我需要在同一页面中处理数据。然而,我试图做一些改变 -
1)提交后,页面会重定向到index.php,因为缺少“survey_id”URL元素。 2)如果我将表单提交到“survey_frontend.php?survey_id = currentID”,表单只会重新加载而且没有变化。
我认为在这种情况下代码完全相关的代码,因此太大而无法在此处发布。代码可以在这里找到: http://codepad.org/7GSkHkL2
目前我只是试图让Echo“Congrats”声明在提交时工作,但这种情况并没有发生。
答案 0 :(得分:1)
$ _ POST []访问表单通过名称控制,这是通过name属性给出的。目前,您的代码无法检测到提交按钮,因此您的页面永远不会祝贺任何人。 给你的按钮一个名字,它的存在就会闪耀!
<input type="submit" **name="submit"** value="Submit!" />
答案 1 :(得分:1)
这是我试图解释的摘要;
<?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