Ich habe ein Problem damit, eine Reihe von Checkboxen neu zu füllen, nachdem eine nicht erfolgreiche Formularvalidierung den Benutzer zurück zum selben Formular gebracht hat. Dropdown-Menüs und Texteingaben könnten neu gefüllt werden, aber keine Checkboxen!
Hier ist ein Ausschnitt des Codes für die Kontrollkästchen:
%Vor%Das Code-Snippet für die Texteingabe, das erfolgreich neu gefüllt wurde, ist:
%Vor% Irgendwelche Ideen? Ich bin wirklich verwirrt, warum set_checkbox
nicht wie angekündigt funktioniert.
Sie set_checkbox
Anrufe sind falsch. Wenn Sie in form_checkbox ein Array wie "ambient []" verwenden, möchten Sie die eckigen Klammern ([]) nicht in Ihren set_checkbox
-Aufruf einfügen. Das andere Problem besteht darin, dass set_checkbox einen zweiten Parameter benötigt, den Sie nur in die ersten beiden Kontrollkästchen eingefügt haben.
Das set_checkbox sollte immer so aussehen:
%Vor% Dabei ist 'Wert' der zweite Parameter des Aufrufs form_checkbox
. So:
Damit set_checkbox ordnungsgemäß funktioniert, muss für dieses Element eine tatsächliche Validierungsregel verwendet werden. Ich bin auf dieses Problem gestoßen und konnte den Wert, der bei einer Wiedervorlage angezeigt werden soll, erst erhalten, wenn ich Folgendes eingefügt habe:
%Vor%Dann hat alles perfekt funktioniert.
Hier ist ein funktionierendes Beispiel. Sie müssen den Array-Namen mit Klammern [] in $this->form_validation->set_rules()
, form_checkbox()
und set_checkbox()
einfügen.
In der Steuerung:
%Vor%In der Ansicht:
%Vor%Ich habe alle Lösungen ausprobiert, hier hat keiner funktioniert. Also habe ich alle Daten gesammelt, in ein Array gepackt und dann mit einer Schleife überprüft, ob die Werte im Array mit dem Wert der ausgewählten Box übereinstimmen. Wenn ja, ändere das überprüfte Attribut auf checked.
Hier ist der HTML-Code:
%Vor%Hier ist der JavaScript-Code in einer Funktion
%Vor%Tags und Links php codeigniter