由於某種原因,如果在我的表單上犯了一個錯誤,那麼url變量會消失,並且必須有一種方法來保留它們。我是PHP新手,PHP Form Builder Class很新,所以我無法弄清楚。我的表單頁面看起來像:如何在使用PHP Form Builder Class提交表單提交後保留url變量
<?php
require_once '../site_globals/FirePHP.class.php';
ob_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Step Two: Physician Supervisor Feedback</title>
<link rel="stylesheet" type="text/css" href="../css/view.css" media="all" />
</head>
<body id="main_body" >
<img id="top" src="../images/top.png" alt="" />
<div id="form_container">
<div id="form_container" style="background-color: #004F79; height:45px;"></div>
<div style="padding:30px;">
<div class="form_description">
<h2>Step Two: Physician Supervisor Feedback</h2>
<p></p>
</div>
<?php
session_start();
$hide = $_GET['id'];
$hide1 = $_GET['hash'];
include '../site_globals/dbc.php';
error_reporting(0);
include("../PFBC/Form.php");
if (isset($_POST["form"])) {
if (Form::isValid($_POST["form"])) {
/*The form's submitted data has been validated. Your script can now proceed with any
further processing required.*/
$name = filter($_POST['name']);
$title = filter($_POST['title']);
$email = filter($_POST['email']);
$fina = filter($_POST['fina']);
$status = filter($_POST['status']);
$comments = filter($_POST['comments']);
$date = filter($_POST['date+']);
$hidden = filter($_POST['hidden']);
$hiddenhash = filter($_POST['hiddenhash']);
//Run first query to input POSTS into table
$query_1 = "UPDATE usc_table SET name_2='$name', title_2='$title', email='$email', financial='$fina', status_2='$status', comments='$comments', date_2='$date' WHERE submission_id='$hidden'";
$things = mysql_query($query_1) or die(mysql_error());
//Run second query to update feedback column in submissions
$query_2 = "UPDATE submissions SET feedback=3 WHERE submission_id=$hidden";
mysql_query($query_2) or die(mysql_error());
INCLUDE '../site_hospital01/pdfmaker_2.php';
echo "Thank You, Your Feedback Has Been Submitted.";
} else {
/*Validation errors have been found. We now need to redirect back to the
script where your form exists so the errors can be corrected and the form
re-submitted.*/
$hide = $_GET['id'];
$hide1 = $_GET['hash'];
$firephp = FirePHP::getInstance(true);
$firephp->log("$hide", 'Iterators');
$pageURL = $_SERVER['REQUEST_URI'] . "?id=" . $hide . "&&hash=" . $hide1;
header("Location: " . $pageURL);
}
exit();
}
?>
<?php
$hide = $_GET['id'];
$hide1 = $_GET['hash'];
$options = array(
"Order as needed",
"Shelf Stock",
"Consignment"
);
$options1 = array(
"Approved",
"Denied"
);
$form = new Form("anything", 700);
$form->addElement(new Element_Hidden("form", "anything"));
$form->addElement(new Element_Textbox("Name:", "name", array(
"required" => 1
)));
$form->addElement(new Element_Textbox("Title:", "title", array(
"required" => 1
)));
$form->addElement(new Element_Textbox("Email:", "email", array(
"required" => 1
)));
$form->addElement(new Element_YesNo("Do you have a financial interest in the manufacturer of this product:", "fina", array(
"required" => 1
)));
$form->addElement(new Element_Radio("Status of this request:", "status", $options1, array(
"inline" => 1,
"required" => 1
)));
$form->addElement(new Element_Textarea("Comments:", "comments", array(
"required" => 0
)));
$form->addElement(new Element_Date("Date:", "date+"));
$form->addElement(new Element_Hidden("hidden", "$hide"));
$form->addElement(new Element_Hidden("hiddenhash", "$hide1"));
$form->addElement(new Element_Button);
$form->render();
//var_dump(get_defined_vars());
?>
</div>
</div>
<img id="bottom" src="../images/bottom.png" alt="" />
</body>
</html>
<?php
ob_end_flush();
?>
它是活在http://supplychex.com/site_hospital01/feedback_2.php?id=&&hash=
如何保持現有的URL變量的形式提交後,如果有錯誤,任何想法?我嘗試了幾件事,每次都消失。我希望比我聰明的人能告訴我他們將如何處理這件事。我曾嘗試將網頁重定向到本網站上的每個建議網址,這意味着將url變量保留在原位並令人沮喪地仍然消失。我已經考慮過隱藏的字段,但是由於出現錯誤,表單沒有發佈。幫助....
我有更大的使用PFBC的商業理由。我將來需要創建許多這樣的表單,並且從設計的角度來看,這個類可以非常簡單地快速構建表單。因爲這個問題,我希望我不必重做所有的表格。如果我要使用PFBC如何將GET變量拉入else語句,你會有什麼想法嗎?謝謝。 – 2012-01-30 19:56:51
想通了。只需在if(isset($ _ POST [「form」]))之後立即捕獲隱藏的字段,那麼它們在else語句中可用於添加到url中,並且在表單中存在錯誤時可用。 – 2012-01-30 21:53:38