Sto cercando un approccio concettuale a un problema.
Sto costruendo un'app Web che importa dati da una fonte che non controllo. La qualità dei dati è piuttosto alta, ma a volte i dati non hanno senso. Quindi voglio esporre le eccezioni (basate sulle regole dei dati) agli utenti in una modale in modo che possano accettare i dati funky o cambiarli prima di commetterli.
L'app è stata sviluppata finora per comportarsi in questo modo:
- durante l'importazione dei dati, le transazioni vengono convalidate Le transazioni
- che non vengono convalidate vengono accumulate in un array php (ovvero "exceptions_arr")
- in alcuni casi l'intelligence nel codice propone una soluzione per campi di dati "cattivi" (basati su dati correlati) e aggiunge questi suggerimenti al record "eccezione" (ma non sostituisce i dati importati originali)
- quindi, prima di completare l'importazione, i record delle eccezioni (e le correzioni proposte) vengono esposti all'utente in modale, uno alla volta
- per ogni record, l'utente decide: salta, accetta i dati originali o modifica il record e lo salva (che, naturalmente, verrà nuovamente convalidato per motivi di sicurezza)
Obiettivo:
Crea un'esperienza utente IN MODAL: visualizza un'eccezione, invia la decisione e / o le modifiche dell'utente, registra i dati sul back-end, invia un messaggio di conferma, quindi visualizza l'eccezione successiva sostituendo il corpo del modale. Bonus se la pagina sottostante viene aggiornata (con alcune statistiche contatore) in base alle decisioni prese.
Domanda: come fare?
È il loop delle eccezioni con cui ho problemi. Il mio approccio finora è stato quello di: a) imposta e mostra la modale con una struttura vuota (fatto, nessun problema) b) crea il tbody della tabella con i prima eccezione dati (fatto, nessun problema) c) acquisire i dati appropriati (nessuno, vecchio, proposto / modificato) quando l'utente invia la sua decisione (fatto, nessun problema)
Approccio attuale:
Attualmente sto postando i dati decisionali dell'utente alla pagina host tramite ajax, e gestendo la decisione dell'utente risultante / POST semplicemente bene - una volta. Il problema è che questo POST di nuovo alla pagina che ha lanciato il modale spazza via l'eccezione_arr accumulata.
Ho cercato come eseguire il loop dei dati un record alla volta e interrompere il processo quando viene rilevata ogni eccezione (e apri una nuova modal e raccogli la decisione dell'utente), ma ahimè jquery / javascript / php code isn ' t facilmente fermato e ripreso. Quando la decisione dell'utente viene sottoposta a POST, la pagina di avvio si riavvia ancora (dall'inizio).
Sta usando l'archiviazione SESSION un buon approccio? Leggi tutte le eccezioni nel DOM e poi elabora?