Newsgroup: it.comp.www.php
Titolo: Form suddivisa su piu' pagine

Salve a tutti,
ho la necessita' di costruire una fom (i cui dati andranno inseriti in
un db MySQL) composta da moltissimi campi.
Avrei quindi intenzione di suddividerla in piu' pagine (circa 10),
ognuna con un pulsante next; vorrei sapere qual e' secondo voi
l'approccio piu' opportuno.
Avevo pensato di inserire i dati della prima pagina come campi hidden
della seconda e cosi' via per gli altri, per consentire di conservare
i dati fino alla fine.
Questa soluzione ha delle controindicazioni?
Sarebbe preferibile usare le sessioni?
In generale la suddivisione di una form in piu' pagine puo' avere
problemi (a parte il fatto che l'utente deve stare on-line mentre la
compila)? Es. utilizzo del tasto back del browser che porta a messaggi
"Avviso: la pagina è scaduta" da parte di IE etc etc.
Grazie.
Lupin
-------------------------
http://www.antiloco.com/
<la directory del Web developing>
----------------------------------
Rimuovere XXX per rispondere via e-mail

 Lupin
Di nulla,
Giuseppe Musu

 "Avviso: la pagina č scaduta" da parte di IE etc etc.
Io userei OOP+Session...
<?php
class multiform {
  var var_del_form1;
  var var_del_form2;
  // ecc. ecc..
  function save_in_mysql() {
     // qui codice per inserimento dati in mysql
  }
}
?>
poi nella pagina del primo form:
<?
...
$multiform = new multiform();
session_register('multiform');
...
?>
Ora hai registrato l'oggetto "multiform" e quindi da tutte le altre pagine
del form ti basta "tenere in mente" le variabili cosě:
$multiform->var_del_form2 = "valore";
in fine, nell'ultima pagina...
$multiform->save_in_mysql();
un po' tosto da capire ma sicuramente la miglior soluzione... registrando 1
solo oggetto, hai mella sessione l'intera classe...
Ciao
Alex

Io userei OOP+Session...
[......]
Ho provato a farlo con le session, senza pero' scomodare OOP, registro
normalmente ciascuna variabile che viene inviata da POST (basta un
ciclo sul vettore $HTTP_POST_VARS).
Poi sotto ogni form ci sono i pulsanti indietro e avanti, tutto sembra
funzionare egregiamente, l'utente puo' muoversi tra le pagine e fare
correzzioni, se non per un problemino Javascript (in automatico si
setta il focus sul back, quindi se uno fa invio va indietro invede di
avanti).
Pero' mi sono scontrato con i vari messaggi "Pagina scaduta" di IE che
appaiono se si preme back, c'e' modo di aggirare il problema? Appaiono
solamente quando si usano le sessioni?


solamente quando si usano le sessioni?
Se vuoi permettere di tornare indietro dovresti fare in modo che la
pagina n riempia il form con i dati gia' registrati, il back non e' un
sistema affidabile.
Bonf

 specie quando i campi sono molti. [...]
Concordo, i campi hidden sono molto comodi.
In aggiunta a quello che hai già suggerito a Lupin, si potrebbe inserire
alla fine una pagina di riepilogo contenente tutti i dati inseriti nelle
pagine precedenti, con due pulsanti: uno per confermare l'inserimento del
record, l'altra per modificarlo. Così si evitano errori e problemi di form
compilati in modo incompleto.
Cambiando (quasi) totalmente discorso, andate su
www.lavorosardegna.com/cerco/inserisci.php
 e mi dite se è un form in qualche
modo difficile da compilare, ambiguo, o qualsiasi altra cosa del genere?
Perchè nonostante io abbia inserito tutti gli aiuti possibili (anche se non
visibilissimi), tutti i controlli necessari in Javascript e quant'altro, i
miei utenti continuano a saltare dei campi.
Sono degli utOnti o sono io che complico le cose? ;-)
--
M  a  r  c  o    S  a  l  i  s            
marc...@tin.it
www.fidalnet.com
   -   
www.atleticaoristano.com
www.musix4u.com
 - il forum dedicato alla musica!
www.lavorosardegna.com
 - il lavoro in Sardegna

 solamente quando si usano le sessioni?
Appare pagina scaduta se torni indietro dopo aver fatto il submit di un form
con method post...
Per risolvere il problema semplicemente non si fa back, ma si linka la
pagina precedente...
Se usi le sessioni non fa differenza tornare indietro tramite "back" o
tramite link...
Con OOP diventa sempre più comodo :-)))
Ciao
Alex

 ha scritto nel messaggio
news:lJeb8.75272$3J1.2...@news2.tin.it...


Mooolto bello!!!!
Giuseppe Musu
"Alessio" <(
alessi...@libero.it
)@NOSPAM.tld> ha scritto nel messaggio
news:Thgb8.75607$3J1.2...@news2.tin.it...


 anche che i campi ci siano a livello di script php.
Già, è una cosa che andrebbe fatta, e che farò non appena ho un po' di
tempo. Le pagine di verifica sono quanto di più palloso una persona possa
fare col php ;-)
Da quando ho aperto il sito ne ho viste di tutti i colori con quel form,
gente che si dimenticava di riempire i campi nonostante ci fosse scritto
"INSERISCI QUI BLA BLA BLA"... forse io sbaglio ragionando su me stesso come
"utente finale" del sito!!


"utente finale" del sito!!
Infatti,
ogni applicazione (con interfaccia web o classica da
desktop) andrebbe testata da un gruppetto di utenti (di ogni
fascia) che dia giudizi sull'usabilità, oltre ad un gruppo
di test che si dedichi alla sicurezza dell'applicazione.
Naturalmente, questo lo puoi fare se sei un'azienduccia ed
il lavoro ti viene pagato decine di milioni:)
-- 
WEbdOM webmaster di
Metronic.It mobile phone philosophy
www.gadgetpoint.it
 serigrafia on line

con method post...
Vorrei fare un po' di chiarezza su questo punto.
Normalmente se faccio back dopo un submit tutto funziona correttamente
sia con IE che con NS, la pagina viene visualizzata nuovamente con i
campi gia' compilati.
L'avviso "pagina scaduta" invece, mi sembra che esca solo quando
contenporaneamente si settano variabili di sessione (o forse anche
solo cookie?); mi sbaglio?
Mi fate un esempio di una form normalissima in cui non funziona il
tasto back dopo il submit?


 ed il lavoro ti viene pagato decine di milioni:)
:-)
Ma qualcosa si può fare anche senza spendere nulla, verificando i dati dei
tuoi utenti da un contatore/statistiche per ogni pagina, dai tempi di
stazionamento sulle pagine e, nel caso dei form, vedere gli errori più
frequenti commessi dagli utOnti... (scusate ma in questo periodo questo
termine mi sta simpatico!)
