Ich möchte die jQuery-UI- sortable
Funktion verwenden, damit Benutzer eine Reihenfolge festlegen und diese dann bei Änderung in die Datenbank schreiben und aktualisieren können. Kann jemand ein Beispiel schreiben, wie dies gemacht werden würde?
125
toArray
würde eine Reihe von sortierten IDs geben, ich denke, es könnte hilfreich sein. api.jqueryui.com/sortable/#method-toArrayAntworten:
Die jQuery-UI-
sortable
Funktion enthält eineserialize
Methode , um dies zu tun. Es ist wirklich ganz einfach. Hier ist ein kurzes Beispiel, das die Daten an die angegebene URL sendet, sobald ein Element seine Position geändert hat.Dies bedeutet, dass mithilfe der Elemente ein Array der Elemente erstellt wird
id
. Also mache ich normalerweise so etwas:Wenn Sie die
serialize
Option verwenden, wird eine POST-Abfragezeichenfolge wie folgt erstellt:item[]=1&item[]=2
usw. Wenn Sie beispielsweise Ihre Datenbank-IDs imid
Attribut verwenden, können Sie einfach das POSTed-Array durchlaufen und die Positionen der Elemente entsprechend aktualisieren .Zum Beispiel in PHP:
Beispiel auf jsFiddle.
quelle
$("#element").children().uniqueId().end().sortable({...
Dachte, das könnte auch helfen. A) Es wurde entwickelt, um die Nutzlast beim Zurücksenden an den Server nach jeder Sortierung auf ein Minimum zu beschränken. (Anstatt jedes Mal alle Elemente zu senden oder viele Elemente zu durchlaufen, die der Server möglicherweise ausspuckt.) B) Ich musste eine benutzerdefinierte ID zurücksenden, ohne die ID / den Namen des Elements zu beeinträchtigen. Dieser Code erhält die Liste vom asp.net-Server und beim Sortieren werden nur 2 Werte zurückgesendet: Die Datenbank-ID des sortierten Elements und die Datenbank-ID des Elements, neben dem es abgelegt wurde. Anhand dieser beiden Werte kann der Server die neue Position leicht identifizieren.
quelle
Sie haben Glück, ich verwende genau das in meinem CMS
Wenn Sie die Bestellung speichern möchten, rufen Sie einfach die JavaScript-Methode auf
saveOrder()
. Es wird eine AJAX-POST
Anfrage an saveorder.php gestellt, aber natürlich können Sie diese jederzeit als reguläres Formular veröffentlichen.In saveorder.php; Denken Sie daran, dass ich alle Überprüfungen und Überprüfungen entfernt habe.
quelle
Das ist mein Beispiel.
https://github.com/luisnicg/jQuery-Sortable-and-PHP
Sie müssen die Bestellung im Update-Ereignis abfangen
quelle
Ich kann die Zeilen ändern, indem ich der akzeptierten Antwort und dem zugehörigen Beispiel auf jsFiddle folge. Aus unbekannten Gründen konnte ich die IDs nach "Stop or Change" -Aktionen nicht erhalten. Das auf der JQuery-UI-Seite veröffentlichte Beispiel funktioniert jedoch gut für mich. Sie können diesen Link hier überprüfen.
quelle
Versuchen Sie es mit dieser Lösung: http://phppot.com/php/sorting-mysql-row-order-using-jquery/, wobei eine neue Bestellung in einem HMTL-Element gespeichert wird. Anschließend senden Sie das Formular mit diesen Daten an ein PHP-Skript und durchlaufen es mit der for-Schleife.
Hinweis: Ich musste ein weiteres Datenbankfeld vom Typ INT (11) hinzufügen, das bei jeder Iteration aktualisiert (mit Zeitstempel versehen) wird. Es dient dazu, dass das Skript erkennt, welche Zeile zuletzt aktualisiert wurde, oder Sie erhalten verschlüsselte Ergebnisse.
quelle