Added support to reuse form data if validation fails, refs #672

This commit is contained in:
Andreas Burchert (scarya)
2011-03-19 13:43:01 +01:00
parent 3a6779570f
commit ef8c3d3cf7
4 changed files with 43 additions and 4 deletions

View File

@@ -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'],

View File

@@ -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 '<select
id="'.$fieldname.'"
name="'.$fieldname.'"
'.(isset($data['class']) ? ' class="'.$data['class'] .'" ' : '').'
>'
.$data['select_var'].
.$select_var.
'</select>';
}
}

View File

@@ -39,5 +39,14 @@ function makeyesno($name, $yesvalue, $novalue = '', $yesselected = '', $disabled
} else {
$d = '';
}
return '<select class="dropdown_noborder" id="' . $name . '" name="' . $name . '"'.$d.'><option value="' . $yesvalue . '"' . ($yesselected ? ' selected="selected"' : '') . '>' . $lng['panel']['yes'] . '</option><option value="' . $novalue . '"' . ($yesselected ? '' : ' selected="selected"') . '>' . $lng['panel']['no'] . '</option></select>';
if (isset($_SESSION['requestData'])) {
$yesselected = $yesselected & $_SESSION['requestData'][$name];
}
return '<select class="dropdown_noborder" id="' . $name . '" name="' . $name . '"'
.$d.'>
<option value="' . $yesvalue . '"' . ($yesselected ? ' selected="selected"' : '') . '>'
. $lng['panel']['yes'] . '</option><option value="' . $novalue . '"'
. ($yesselected ? '' : ' selected="selected"') . '>' . $lng['panel']['no'] . '</option></select>';
}

View File

@@ -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))