Angenommen natürlich arbeiten wir mit HTML Forms und GET/POST Daten, Backend Sprache Agnostic. Asker spricht fließend PHP und Python.Behandeln Sie eine (möglicherweise paginierte) Liste von Elementen, z. B. um einen Wert basierend auf einem einzelnen Klick umzuschalten?
Beispiel: Tracking-Ereignis Anwesenheit, gibt es eine HTML-Seite für die Ereignisverwaltung, die alle verfügbaren Personen auflistet. Es gibt eine Spalte neben jedem Namen mit einer Grafik/Widget, die ihre Anwesenheit für das Ereignis darstellt. Was ist der beste Weg, um den Anwesenheitsstatus für eine Person auf der Liste zu aktualisieren?
Eine Methode, an die ich anfangs dachte, war einfach eine Checkbox für die Teilnahme zu verwenden. Ungeprüfte Felder werden jedoch nicht zusammen mit Formulardaten gesendet . Die zugrunde liegende Logik müsste den Anwesenheitsstatus auf FALSE/OFF/Not Attending für jede Personen-ID ändern, die nicht zusammen mit dem Formular gesendet wird. Dies bricht, wenn die Liste paginiert wird!
Die zweite Methode, über die ich nachdachte, war die Verwendung einer Grafik/Schaltfläche neben jedem Namen. Ist es angemessen, dass jeder Knopf ein Senden-Knopf ist? Wie in: Ist es erlaubt, dass ein Formularelement mehrere Übergabeschaltflächen hat? Oder sollte jeder Button/Person in ein eigenes Formularelement eingebunden werden?
Eine gute Antwort, und ich möchte erweitern, was hier ist: Das funktioniert basierend auf einem numerischen Schlüssel, und wo die Person Datensätze sind zusammenhängend. Ansonsten (gefiltert/nach Vornamen sortiert) müsste diese Methode eine Liste aller Personen-IDs auf der Seite enthalten. Es wirkt etwas klobig, könnte aber funktionieren. –
Nun, die Min/Max-Werte könnten sein, was auch immer die Seite zum Sortieren verwendete. Das Übergeben von Namen als Minimum/Maximum würde genauso gut funktionieren, solange die Formularverarbeitungsseite diese verwendet, um die Liste gültiger IDs aus den Daten abzurufen. Es muss nicht unbedingt zusammenhängend sein, das Minimum/Maximum sollte nur verwendet werden, um Grenzen bei der Auswahl einer Liste gültiger IDs zu setzen, die dann mit der Liste der Checkbox-Werte verglichen werden können. –
Eine zusätzliche Anmerkung zu meinem obigen Kommentar, es würde einen dritten versteckten Wert erfordern, der die Sortiermethode darstellt, also könnten Sie zum Beispiel die 3 Werte übergeben: sort = "lastName", min = "Adams", max = "Carson" und wählen Sie auf der Formularverarbeitungsseite alle Personen-IDs aus der Datenbank aus, deren Nachname zwischen Adams und Carson liegt. –