In einer Vorlage habe ich zwei verbundene Listen, von denen eine zunächst leer ist. Der Benutzer muss bis zu drei Optionen aus der linken Liste auswählen, sie zur rechten Liste hinzufügen, sie (gemäß seinen Prioritäten) ordnen und dann zurücksenden.senden Sie eine Liste von ul zu Formular in Django
es sieht aus wie:
<ul id="sortable1" class="connectedSortable">
<li value="1">Item A</li>
<li value="2">Item B</li>
<li value="3">Item C</li>
<li value="4">Item D</li>
<li value="5">Item E</li>
<li value="6">Item F</li>
<li value="7">Item G</li>
</ul>
</div>
<ul id="sortable2" class="connectedSortable">
<!--here goes the initially empty list-->
</ul>
und in {% Skripte%} Block:
<script>
$(function() {
$("#sortable1, #sortable2").sortable({
connectWith: ".connectedSortable"
}).disableSelection();
});
</script>
in models.py habe ich ein Feld, um die ausgewählten Informationen zu speichern:
preferences = CommaSeparatedIntegerField()
Das Problem ist, wie POST-Informationen von der aktualisierten ul (sortable2
) zurück in die Datenbank? Ich kann der Seite ein verstecktes Feld preferences
hinzufügen und es dann mit jQuery füllen, aber es scheint wie eine hässliche Lösung. Was ist der richtige?
"dann wird auch ein Element vom Eingabetyp eingefügt" - meinen Sie, dass es automatisch eingefügt wird, sobald ich ul (sortable2) in ein Formular einfüge oder ich selbst den Eingabetyp hinzufügen soll? –
Sie müssen eine OnClick-Funktion für die Schaltfläche schreiben, auf die die Elemente von ul (sortierbar1) nach ul (sortierbar2) verschoben werden. In dieser Funktion müssen Sie ein div und dann ein input type Element erstellen und dieses Element dann mit Javascript an dieses div anhängen. Sehen Sie dies für ein Beispiel für das Hinzufügen eines Eingabefeldes oder in allgemeinen divs und Elemente zu HTML mit Javascript -> https://github.com/amyth/hammer/blob/master/static/js/main.js Sehen Sie sich die Populationsfunktion an und wie Eingabeelemente zu div hinzugefügt wurden und wie ihre Eigenschaften und Attribute festgelegt wurden. –