diff --git a/admin_customers.php b/admin_customers.php
index 9571809e..5d996a3c 100644
--- a/admin_customers.php
+++ b/admin_customers.php
@@ -40,6 +40,9 @@ if($page == 'customers'
{
if($action == '')
{
+ // clear request data
+ unset($_SESSION['requestData']);
+
$log->logAction(ADM_ACTION, LOG_NOTICE, "viewed admin_customers");
$fields = array(
'c.loginname' => $lng['login']['username'],
diff --git a/lib/classes/output/class.htmlform.php b/lib/classes/output/class.htmlform.php
index 3b39e00b..efd90cae 100644
--- a/lib/classes/output/class.htmlform.php
+++ b/lib/classes/output/class.htmlform.php
@@ -148,7 +148,15 @@ class htmlform
$extras .= ' size="'.$data['size'].'"';
}
- $value = isset($data['value']) ? $data['value'] : '';
+ // add support to save reloaded forms
+ if (isset($data['value'])) {
+ $value = $data['value'];
+ } elseif (isset($_SESSION['requestData'][$fieldname])) {
+ $value = $_SESSION['requestData'][$fieldname];
+ } else {
+ $value = '';
+ }
+
$ulfield = ($unlimited == true ? ' '.$data['ul_field'] : '');
if(isset($data['display']) && $data['display'] != '')
{
@@ -169,7 +177,16 @@ class htmlform
if(isset($data['rows'])) {
$extras .= ' rows="'.$data['rows'].'"';
}
- $value = isset($data['value']) ? trim($data['value']) : '';
+
+ // add support to save reloaded forms
+ if (isset($data['value'])) {
+ $value = $data['value'];
+ } elseif (isset($_SESSION['requestData'][$fieldname])) {
+ $value = $_SESSION['requestData'][$fieldname];
+ } else {
+ $value = '';
+ }
+ trim($value);
eval("\$return = \"" . getTemplate("misc/form/input_textarea", "1") . "\";");
return $return;
@@ -187,12 +204,21 @@ class htmlform
private static function _selectBox($fieldname = '', $data = array())
{
+ // add support to save reloaded forms
+ if (isset($data['select_var'])) {
+ $select_var = $data['select_var'];
+ } elseif (isset($_SESSION['requestData'][$fieldname])) {
+ $select_var = $_SESSION['requestData'][$fieldname];
+ } else {
+ $select_var = '';
+ }
+
return '';
}
}
diff --git a/lib/functions/output/function.makeyesno.php b/lib/functions/output/function.makeyesno.php
index da2305be..d7cd7fcd 100644
--- a/lib/functions/output/function.makeyesno.php
+++ b/lib/functions/output/function.makeyesno.php
@@ -39,5 +39,14 @@ function makeyesno($name, $yesvalue, $novalue = '', $yesselected = '', $disabled
} else {
$d = '';
}
- return '';
+
+ if (isset($_SESSION['requestData'])) {
+ $yesselected = $yesselected & $_SESSION['requestData'][$name];
+ }
+
+ return '';
}
diff --git a/lib/functions/output/function.standard_error.php b/lib/functions/output/function.standard_error.php
index 56b5fda0..5d3a8887 100644
--- a/lib/functions/output/function.standard_error.php
+++ b/lib/functions/output/function.standard_error.php
@@ -29,6 +29,7 @@
function standard_error($errors = '', $replacer = '')
{
global $db, $userinfo, $s, $header, $footer, $lng;
+ $_SESSION['requestData'] = $_POST;
$replacer = htmlentities($replacer);
if(!is_array($errors))