Wie bestätige ich ein Formularfeld, in Codeigniter bei der Verwendung von Get-Parametern?
Ich habe ein Formular, das funktionierte perfekt, bis ich wechselte die form zu method="get"
. Jetzt komme ich nicht form_validation->run()
zu "TRUE" ausgewertet wird.
Dies ist, wie ich das Formular öffnen:
echo form_open( '', array( 'method' => 'get' ) );
Dies ist das einzige Stück, dass muss überprüfen:
$this->form_validation->set_rules( 'states', 'states', 'required' );
Dies ist, wie ich überprüfen, um zu sehen, wenn das Formular validiert:
if( $this->form_validation->run() == FALSE )
Ist es etwas anderes was ich tun müssen, um zu verwenden Sie die Get-Parameter? Ich habe die get-Parameter aktiviert in der config ( $config['allow_get_array'] = TRUE;
). Das Formular funktioniert ok, wenn ich überspringen der Validierung, also ich kenne das CI-system liest die url in Ordnung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für CodeIgniter-3, können Sie das GET-array in der
set_data
Funktion. Zum Beispiel:$this->form_validation->set_data($this->input->get());
Nur hinzufügen:
zur Validierung der Mitgliedstaaten Feld in Formular-Validierung kurz vor
Diesem post auf dem Codeigniter-Forum deutet darauf hin, dass Formular-Validierung funktioniert nicht mit Get-Parametern und das ist nur die Art und Weise Codeigniter ist.
Wie Sie sehen können auf dem Form_validation.php die Datei, die Sie haben hardcoded $_POST überall in der Klasse ;-(
Wenn Sie unterstützen möchten, $_GET, es ist ziemlich einfach (und schmutzig Oooo), können Sie erstellen Sie eine neue Eigenschaft :
- Und-ersetzen $_POST durch $this->inputData überall in dieser Klasse, da es keine statischen Methoden.
Ich weiß, es ist nicht wieder aufgenommen worden, zu Bearbeiten Anbieter-Dateien, aber wirklich, Sie müssen es, tun Sie es 😉
Codeigniter geändert hat, da einige dieser Beiträge. Ich denke, dass gX ' s Antwort ist richtig.
Den Anweisungen in der Bedienungsanleitung, insbesondere Abschnitt Die Validierung ein Array (eine andere als $POST), gearbeitet hat ideal für mich (wie heute) und es ist sehr einfach.
Bevor Sie Ihre $this->form_validation->set_rules Zeile, geben Sie den array validiert werden:
War versucht, genau das zu tun, etwas ähnliches, aber es läuft darauf hinaus, die Struktur des Codes.
Hoffe, es hilft.