Wie verarbeiten die ausgewählten Zeilen, in Yii das CGridView?
Habe ich ein CGridView mit einem CCheckBoxColumn und selectableRows = 2. Der Benutzer kann wählen Sie mehrere Zeilen aus meiner grid-Ansicht.
Gridview ist eine Liste der nicht zugelassenen Kommentare und ich möchte in der Lage sein zu wählen, Kommentare zu genehmigen, auf einen "Annehmen" - button und ein Feld aktualisieren, die in der Kommentare-Tabelle für jeden Kommentar, der genehmigt wurde.
Wie kann ich dies tun?
Ich bin offen für eine ajax-Lösung, aber wirklich das, was ich wissen will ist, wie man der Liste der Kommentar-ids in meine controller-action-code mit einem normalen post. Ich würde es vorziehen, eine Lösung, die sich nicht um javascript, es sei denn, dass ist die einzige option.
InformationsquelleAutor User | 2012-10-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
War ich in der Lage, diese arbeiten ohne Abhängigkeit von javascript. Die Schritte sind wie folgt:
Fügen Sie ein Formular auf Ihrer view-Datei
Damit wird die checkbox-Werte, die html-Eingabe-Elemente, um gebucht werden zu Ihrem controller.
Hinweis, indem Sie ein "Name" - option, um den submitButton festgelegt, die es ermöglicht, zu wissen, auf welche Schaltfläche geklickt wurde, die in den controller.
Geben Sie Ihre Kontrollkästchen Spalte eine id
Vorher hatte ich:
Ich dies geändert:
Nun können Sie auf Ihrem ausgewählten Zeilen als ein array über
$_POST['selectedIds']
. Standardmäßig ist dieCCheckBoxColumn
wird, verwenden Sie die primary key-Modell-Elemente in der gridview - (aber Sie können dies ändern), so selectedIds wird ein array der ausgewählten Primärschlüssel.Ändern-controller zum verarbeiten der ausgewählten Zeilen
Habe ich dieses Yii wiki-Artikel helfen mir mit dieser Lösung: Arbeiten mit CGridView in Admin-Panel
Nicht sicher, ob das der ideale Weg, es zu tun, aber es funktioniert. Ich bin offen für Vorschläge für Verbesserungen oder andere Methoden.
InformationsquelleAutor User
Werfen Sie einen Blick auf die docs :
Eine ausgewählte Zeile wird eine CSS Klasse namens 'selected'. Sie können sich auch an die JavaScript-Funktion $.fn.yiiGridView.getSelection(containerID) zum abrufen der wichtigsten Werte der ausgewählten Zeilen.
Also ich denke, JS einzige Weg zu gehen in deinem Fall.
InformationsquelleAutor rinat.io