Salve a tutti,
in realtà questo non è esattamente un problema che espongo, ma la ricerca di un consiglio.
Ho creato un form in una classe che stampa l'html, e si ricarica popolato qualora non venga passato il check dei dati.
Per i campi text, il la cosa si risolve semplicemente utilizzando il construct che istanzi le variabili $_POST come variabili utilizzabili nella dichiarazione del value, oppure queste rimangono dichiarate vuote di partenza.
Codice PHP:
public function __construct() {
if (isset($_POST['submit'])) {
$this->old_id = $_POST['old_id'];
$this->cognome = $_POST['cognome'];
$this->nome = $_POST['nome'];
//etc.etc
il problema si pone per alcuni campi di tipo select, poichè la selezione la fa un "selected:selected" sull'option corrispondente.
Avrei risolto con uno switch, cosa che funziona perfettamente, ma che fa un pò a pugni con l'ottimizzazione del codice che avrei voluto ottenere:
Codice PHP:
switch ($this->tipo_socio_id) {
case '':
$body .= "<option value='' selected: selected>(vuoto)</option> <option value='1'>P</option> <option value='2'>E</option>
<option value='3'>D</option></select></label><br>";
break;
case '1':
$body .= "<option value=''>(vuoto)</option>
<option value='1' selected: selected>P</option> <option value='2'>E</option>
<option value='3'>D</option></select></label><br>";
break;
case '2':
$body .= "<option value=''>(vuoto)</option>
<option value='1'>P</option> <option value='2' selected:selected>E</option>
<option value='3'>D</option></select></label><br>";
break;
case '3':
$body .= "<option value=''>(vuoto)</option>
<option value='1'>P</option> <option value='2'>E</option>
<option value='3' selected:selected>D</option></select></label><br>";
Considerate che questi erano 3 option, ne ho un altro che con il campo vuoto ne fa 21, il che vuol dire circa 450 linee di codice per un singolo switch. Forse un pò troppe.
Letta la cosa, avete per caso un suggerimento su come ridurre la cosa o non c'è speranza?
Grazie!