Domanda

Ho un'applicazione web che tra le altre cose contiene una tabella di elementi creati utilizzando un callback Ajax. Un gruppo di campi di modulo nella parte superiore della tabella mi permette di filtrare gli elementi che verranno visualizzati nella tabella in base a diversi criteri e mostrarlo.

Alcune parti del tavolo hanno liste di elementi con un [X] segnato accanto a loro che posso cancellare cliccando su tali elementi.

Ora, se fossi facendo questo l'Ajax non / javascript modo, la pagina avrebbe ricevuto una serie di campi di dati pubblicati e quindi renderebbe la tabella di conseguenza. Posso fare questo, ma mi piacerebbe anche Ajaxify l'intera impostazione. Le mie domande sono per quanto riguarda questo.

  1. Come faccio a creare il tasto [X]. Un semplice <a> avrebbe "lavoro", ma si tratta di una modifica GET Stato quindi non voglio farlo. Il modo in cui lo sto facendo ora è una forma molto piccolo con un parametro nascosto che tiene l'elemento da eliminare e di un pulsante di stile che è la [x] presentare. Se io ajaxify questo, posso ottenere la risposta e fare il necessario.

  2. Come faccio a mantenere il mio backend SECCO? Io non voglio avere due completamente diversi pezzi di codice per la versione Ajaxified e quelli regolari. Quello che sto facendo in questo momento sta avendo la versione non-ajax presentare a un URL che cambia lo stato e poi reindirizza alla pagina principale del nuovo (simile ad un sistema di tipo PRG). Con l'Ajax ha permesso, ho semplicemente chiamare l'URL e ignorare il reindirizzamento, ma utilizzare i dati restituiti per regolare il tavolo. È questo il "modo giusto"?

  3. Qualsiasi altro consiglio su graceful degradation su come mantenere il mio backend SECCO?

È stato utile?

Soluzione

I avrebbe messo ogni riga nella propria forma esso è (con method='POST'), e includono un campo nascosto per dire quale elemento deve essere cancellato. Il [X] avrebbe inviare il modulo, e nella forma di presentare eventi, se non XMLHttpRequest è presente semplicemente inviare il modulo al server che eliminare l'elemento e reindirizzamento alla stessa pagina di nuovo (questo è buona norma evitare una ricarica da inviare nuovamente il POST di eliminazione).
Se un XMLHttpRequest è presente, impostarlo per POST con l'id della cosa da eliminare, quindi rimuovere la riga se la richiesta è riuscita. Si potrebbe impostare un flag nella richiesta AJAX in modo che reindirizzamento non avviene, solo un successo (200 OK).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top