CGridView mit benutzerdefiniertem Textfeld filtern

8

Ich muss CGridView mit einem benutzerdefinierten Textfeld filtern. Ich habe benutzerdefinierte Datenprovider (CSqlDataProvider), die ich zurückgeben und füllen Sie die Tabelle mit. Tisch ist in Ordnung, aber was mir Schmerz scheint, filtert es. Ich habe einige Stunden damit verbracht, das herauszufinden und die Unterstützung ist schlecht. Ich sah, dass es eine jQuery-Methode gibt, die verwendet wird, um CGridView zu aktualisieren, und dass es den Parameter 'data' benötigt, dessen Wert ich nicht zu formatieren weiß. Hier ist, was ich in meiner / create Datei gemacht habe, wo ich dieses Ding brauche.

PHP:

%Vor%

HTML und PHP unter Berücksichtigung des Suchformulars:

%Vor%

Die Spalte in dataProvider, mit der ich diesen Text vergleichen möchte, heißt 'br_ind'.

BEARBEITEN: Es scheint so, als ob der Name und die ID des Eingabefeldes auch etwas damit zu tun haben (sie sollten in einem bestimmten Format vorliegen). Mein Problem ist - die Daten stammen nicht von einem bestimmten Modell. Es wird von einem Tabellenprodukt und einigen zusätzlichen Einschränkungen für zwei Tabellen erhalten. Daher habe ich kein bestimmtes Modell, um Filter oder irgendetwas zu verwenden, das (afaik) in Yii unterstützt. Aber was ich will, scheint einfach zu sein, aber für mich zum Albtraum geworden. Die Dokumentation über die Parameter der Funktion ist so schlecht. Hoffe jemand kann helfen. Wer ist da reingekommen und konnte das nicht lösen?

    
Luka Bulatovic 02.05.2016, 19:43
quelle

2 Antworten

0

$.fn.yiiGridView.update() verwendet die ajax -Funktion von jQuery im Hintergrund (wenn Ajax-Aktualisierung für das Grid aktiviert ist). Sie können die jQuery-Dokumente für Details zum Datenparameter und andere Optionen auschecken, die an .ajax() übergeben werden können.

Wenn Sie $(this).serialize() verwenden, wie Sie es gerade tun, sollte jQuery br_ind=whatever_the_value_is als Querystring-Parameter zur GET -Anforderung an den Server hinzufügen (vorausgesetzt, Sie verwenden GET, sehen Sie keinen Grund, POST zu verwenden oder ein anderes Verb, aber nicht genug Informationen in Frage gestellt). Verwenden Sie die Entwicklertools Ihres Browsers, um die angeforderte URL und den Antwortinhalt zu überprüfen.

Dann kommt es darauf an, ob der Server die Anfrage richtig verarbeitet. Du hast keine Details angegeben, daher kann ich dir nicht viel helfen.

    
Jody Boucher 05.05.2016 16:13
quelle
0

Dies ist ein Beispiel

%Vor%

In diesem Beispiel müssen Sie auf der Serverseite nur $ _GET [Activity]

erhalten     
tinybyte 09.05.2016 05:37
quelle

Tags und Links