2017-01-19 2 views
1

Ich habe eine Tabelle mit Daten für den Benutzer, um durchzusehen und Änderungen vorzunehmen. Sie haben die Möglichkeit, eine Zeile zu löschen, wenn sie möchten. Wenn sie eine Zeile löschen, sendet sie an die db zurück, welche Zeile gelöscht werden soll. Für den Benutzer wird die Zeile nicht sofort gelöscht, aber es wird eine neue Klasse "gelöscht", die einige Stile hat, um den Benutzer wissen zu lassen, dass es gelöscht wird. Ich habe auch die Seite aktualisiert alle 10 Minuten und wenn es aktualisiert die neue hinzugefügte 'gelöschte' Klasse geht weg.Wie Sie Änderungen an einer Klasse beibehalten, wenn die Seite mit Javascript aktualisiert wird

Wie kann ich erreichen, dass die Klasse in der Zeile bleibt, wenn die Seite aktualisiert wird?

Hier ist die Timer-Funktion für den Timer, um zu wissen, wann die Seite aktualisiert werden soll. Ich benutze Ajax, um die Seite zu aktualisieren.

 function startClock() { 
      // Get the time to stop the effect 
      var stopTime = new Date(); 
      stopTime.setMinutes(stopTime.getMinutes() + 10); 
      // Get a reference to the timer so it can be cancelled later 
      timer = setInterval(function() { 
       // Check to see if the timer should stop 
       var currentTime = new Date(); 
       if (currentTime < stopTime) { 
        triggerDataTable(); //refresh dataTable 
        var randomnumber = Math.floor(Math.random() * 100); 
       } else { 
        // Stop the timer 
        clearInterval(timer); 
       } 
      }, 600000); 
     } 

Würde ich localStorage verwenden? Wenn ja, wie würde ich das tun? Ich bin nicht damit vertraut, lokale Werte oder ähnliches zu speichern.

+0

Vielleicht statt tatsächlich die Zeile aus der Datenbank zu löschen, können Sie tatsächlich der Zeile eine Spalte mit einem Statustyp geben (aktiv usw. gelöscht). Auf diese Weise können Sie beim Aktualisieren der Seite die Klasse basierend auf dem Status der Zeile ändern. – Bram

+0

@Bram Ich gebe der Zeile eine Klasse von 'gelöscht' .. aber wie behalte ich diese Klasse, wenn die Seite aktualisiert wird? – JBaldwin

+0

Anstatt die Zeile aus der Datenbank zu löschen, aktualisieren Sie stattdessen die Zeile und geben ihr einen Status (z. B. archiviert), um anzuzeigen, dass sie gelöscht wurde. Auf diese Weise befinden sich die gelöschten Zeilen immer noch in Ihrer Datenbank. Bei der Aktualisierung laden Sie alle Ihre Zeilen, Zeilen mit einem anderen Status erhalten eine andere Klasse. – Bram

Antwort

2

Ich bin nicht 100% sicher das aber, was so etwas wie dies zu tun:

var deletedRow = $(".deleted"); 
localStorage.setItem(deletedRow, $(".deleted").val()); 
+0

Ich würde zustimmen, verwenden Sie lokalen Speicher für diese ... – Paul

2

versuchen local mit session über

Session Speichereigenschaft behält einen separaten Speicherbereich für jeden gegebenen Ursprung und für eine Sitzung.

Local Storage macht das Gleiche, bleibt aber auch bestehen, wenn der Browser geschlossen und wieder geöffnet wird.

sessionStorage.setItem('item', value); 
sessionStorage.getItem('item'); 
+0

würde "Element" die Klasse der Zeile sein, die geändert wird? – JBaldwin

+0

Element kann ein beliebiger Schlüssel (String) sein. Wert kann eine beliebige Sache sein (String, numerisch, Objekt, Array). So ist es zu Ihnen nach Ihren Anforderungen. –

+0

So etwas wie das: var deletedRow = $ (". Deleted"); \t \t \t sessionStorage.setItem (deletedRow, $ (". Deleted"). Val()); \t \t \t sessionStorage.getItem (deletedRow); – JBaldwin

Verwandte Themen