Salve,
premetto che sono un adepto di OOP per cui so che potrei aver scritto fagianate, comunque il problema è questo:
Ho scritto questa classe (che funziona):
Codice PHP:
Class FormVars {
// [Member functions]
function postvars() {
$__postvars_ar = array (
'set', 'cat', 'stn', 'pr_nom', 'pr_cog', 'pr_rul', [...]
);
foreach ($__postvars_ar as $x) {
global ${$x};
${$x} = isset($_POST[$x]) ? urldecode($_POST[$x]) : "";
}
}
function printhiddenparams() {
$__postvars_ar = array (
'set', 'cat', 'stn', 'pr_nom', 'pr_cog', 'pr_rul', [...]
);
foreach ($__postvars_ar as $x) {
global ${$x};
if (${$x}) print "<input type=\"hidden\" name=\"".$x."\" value=\"".htmlentities(${$x})."\">\n";
}
}
// [Constructor function (php >=4)]
function FormVars() {
}
}
In riferimento a questo thrd:
[PHP]: Form con molti campi: un po di domande...
e a un altro che non trovo in cui andr3a ha scritto la classe SimpleForm.class.php
in cui chiedevo come gestire form con un gran numero di campi (di cui alcuni di questi textfield che potenzialmente contengono molti caratteri)... sono arrivato alla conclusione di gestire l'inserimento di questi dati in vari step, memorizzando nella sessione tutti i parametri (in modo tale da evitare errori se l'utente fa Back dal browser).
Con la classe scritta sopra, richiamando FormVars:
ostvars() recupero sempre tutte le variabili in POST, e con FormVars:
rinthiddenparams() stampo i valori recuperati dal post precedentemente (se pieni).
Il problema/la domanda è:
come posso scrivere nel costruttore l'array che ripeto due volte nelle funzioni della classe?
si può fare (dal momento che la classe non costruisce nessun oggetto)?
Grazie in anticipo.