Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2001
    residenza
    Napoli, Italia
    Messaggi
    1,074

    [Ajax] Problema feedback con form

    Ho un problema da cui non riesco ad uscire...
    Praticamente, avendo una pagina con centinaia di schede diverse, ciascuna delle quali ha (tra l'altro) uno slide che, aperto, mostra un form d'iscrizione ad una newsletter, per evitare di ripetere il codice necessario centinaia di volte ho adottato la soluzione di far sì che - all'apertura dello slide - al suo interno viene creato al volo il form.
    Per fare questo, utilizzo questo codice:

    codice:
    <form action='newsletter.php' method='post' name='newslett' id='newslett'>
    <span style='font-size:1.25em'>Iscriviti alla nostra newsletter, riceverai via email le nostre offerte segrete! E per te un omaggio speciale!</span><br>
    <input type='text' class='basic2' style='width:94%;font-size:1.25em' placeholder='Scrivi la tua e-mail - necessario' name='newsl' id='newsl2' /><br>
    <input type='text' class='basic2' style='width:94%;font-size:1.25em' placeholder='Scrivi il tuo nome e cognome' name='newsl_who' id='newsl_who2' /><br>
    <input type='text' class='basic2' style='width:94%;font-size:1.25em' placeholder='Scrivi il tuo telefono' name='newsl_tel' id='newsl_tel2' /><br />
    <input type='checkbox' name='flag' style='width:20px;font-size:1.25em' value='si' /> <span style='font-size:10px'>Accetto le condizioni di <a href='privacy.php' target='_blank'>privacy</a></span><br />
    <input name='kind' type='hidden' value='os'>
    <input name='datadest' id='datadest' type='hidden' value='"+openDiv+"' /><br />
    <input name='sub' id='sub' type='submit' value=' INVIA ' class='buttonBlue' /></fo
    laddove openDiv è la variabile che identifica quale slide viene aperto.
    E fin qui, tutto bene.
    Il problema sorge perchè il form invia i dati alla pagina di destinazione (newsletter.php) via Ajax.
    Nel caso di un errore (un campo necessario non compilato, o un indirizzo email errato) viene mostrato correttamente il messaggio di errore, ma:
    - se a questo faccio seguire nuovamente il codice del form, scritto nella pagina newsletter.php, poi cliccando nuovamente il pulsante di invio viene caricata questa pagina, e non solo l'esito come feedback nella pagina iniziale
    - se invece voglio dare la possibilità di tornare indietro, usando la funzione window.history.back, o semplicemente history.back, non torna al form precedentemente compilato ma carica la pagina precedente
    Come ne posso uscire?

    Provo cmq a riassumere la sequenza:
    - l'utente clicca per aprire uno slide
    - lo slide si apre, ed al suo interno viene creato (vedi codice sopra) il form
    - l'utente clicca sul pulsante d'invio, ed una funzione JQuery invia i dati alla pagina di destinazione
    - se è tutto okay, questa pagina restituisce un messaggio di conferma e non c'è nessun problema
    - se invece c'è un problema (un campo necessario non compilato, una mail errata), oltre a mostrare il messaggio di errore devo dare all'utente la possibilità di correggere, quindi devo riproporgli il form:
    1) non so come farlo tornare indietro, perchè la funzione di back non ricrea il form nello slide ma va alla pagina precedente
    2) se il form lo faccio creare dalla stessa pagina che ha gestito la chiamata Ajax, quando poi l'utente corregge ed invia nuovamente, ad essere caricata per intero e questa pagina, e non quella da cui si è avviata l'operazione
    metatad
    graphic & web design

  2. #2
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    non si capisce nulla. puoi mettere una pagina di esempio e spieghi meglio?
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2019
    residenza
    Sicilia
    Messaggi
    86
    Presumo che quello che tu chiami slide sia in realtà un popup dove compare il modulo

    Comunque a mio parere faresti meglio, anche da un punto di vista dell'usabilità, a far rimanere l'utente sul modulo mostrandogli i campi da correggere. Magari mostrando sotto l'input di testo l'errore e colorando il bordo del campo in rosso.

    Un'ottima libreria in Javascript è Parsley ma necessita di Jquery.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.