Wie validiere ich ein Formularfeld in Codeigniter, wenn ich Get-Parameter verwende?

7

Ich habe ein Formular, das perfekt funktioniert, bis ich das Formular in method="get" umgestellt habe. Jetzt kann ich form_validation->run() nicht auf TRUE auswerten.

So öffne ich das Formular:

%Vor%

Dies ist das einzige Stück, das validiert werden muss:

%Vor%

So überprüfe ich, ob das Formular validiert ist:

%Vor%

Gibt es noch etwas anderes, was ich tun muss, um die Get-Parameter zu verwenden? Ich habe Parameter in der Config aktiviert ( $config['allow_get_array'] = TRUE; ). Das Formular funktioniert in Ordnung, wenn ich die Validierung überspringe, also weiß ich, dass das CI-System die URL richtig liest.

    
T. Brian Jones 09.05.2012, 22:27
quelle

6 Antworten

5

Dieser Beitrag im Codeigniter-Forum schlägt vor, dass die Formularvalidierung nicht mit Get-Parametern funktioniert und das ist nur so so wie Codigniter ist.

    
T. Brian Jones 09.05.2012, 22:35
quelle
9

Für CodeIgniter 3 können Sie das GET-Array an die Funktion set_data übergeben. Zum Beispiel:
$this->form_validation->set_data($this->input->get());

    
gX. 10.03.2015 11:15
quelle
3

Füge einfach hinzu:

%Vor%

für Validierungsstatusfelder in der Formularvalidierung kurz vor

%Vor%     
Mukesh 15.12.2014 17:38
quelle
2

Codeigniter hat sich seit einigen dieser Posts geändert. Ich denke, die Antwort von gX ist richtig.

Die Anweisungen im Benutzerhandbuch, speziell im Abschnitt Validieren einer Array (außer $ POST) , funktionierte großartig für mich (ab heute) und es ist sehr einfach.

Vor der Zeile $ this- & gt; form_validation- & gt; set_rules geben Sie das Array an, das validiert werden soll:

%Vor%     
Cyclist 19.06.2016 13:23
quelle
1

Wie Sie in der Datei Form_validation.php sehen können, haben sie $ _POST überall in der Klasse fest programmiert; - (

Wenn Sie auch $ _GET unterstützen möchten, ist es ziemlich einfach (und dreckig Oooo), Sie können eine neue Eigenschaft erstellen:

%Vor%

Und ersetzen Sie $ _POST durch $ this- & gt; inputData überall in dieser Klasse, da es keine statischen Methoden gibt.

Ich weiß, dass es nicht anfängt, Herstellerdateien zu bearbeiten, aber wirklich, Sie brauchen es, tun Sie es; -)

    
Thomas Decaux 28.07.2014 11:47
quelle
0

Ich habe versucht, genau etwas Ähnliches zu tun, aber es läuft auf die Struktur Ihres Codes hinaus.

  1. Übermitteln Sie Ihr Formular mit der üblichen Post-Methode. Auf diese Weise können Sie alle Nachprüfungen durchführen.
  2. Verwenden Sie dann die Weiterleitung (), um alle Ihre Daten mit '/'.
  3. an eine andere Methode innerhalb oder außerhalb Ihres Controllers zu senden
  4. Schließlich behandelt die Methode, die alle Parameter empfängt, die Datenbanktransaktionen und zeigt sie der Ansicht an.

Ich hoffe, es hilft.

    
Olamide 06.03.2016 00:44
quelle