codeigniter, Formular-Validierung und-arrays als Feldnamen
Ich habe eine Reihe von Checkboxen in meine HTML sieht so aus,
div class="grid_7">
<fieldset class="age shadow_50">
<label class="legend">Age Group</label>
<div class="formRow checkbox">
<input id="" type="checkbox" name="age[]" value="child" />
<label>Child</label>
</div>
<div class="formRow checkbox">
<input id="" type="checkbox" name="age[]" value="30's" />
<label>30s</label>
</div>
<div class="formRow checkbox">
<input id="" type="checkbox" name="age[]" value="60's" />
<label>60's</label>
</div>
<div class="formRow checkbox">
<input id="" type="checkbox" name="age[]" value="teen" />
<label>Teen</label>
</div>
<div class="formRow checkbox">
<input id="" type="checkbox" name="age[]" value="40's" />
<label>40's</label>
</div>
<div class="formRow checkbox">
<input id="" type="checkbox" name="age[]" value="70's" />
<label>70's</label>
</div>
<div class="formRow checkbox">
<input id="" type="checkbox" name="age[]" value="20's" />
<label>20's</label>
</div>
<div class="formRow checkbox">
<input id="" type="checkbox" name="age[]" value="50's" />
<label>50's</label>
</div>
</fieldset>
</div>
Habe ich eine Gültigkeitsregel festlegen, die in meinem controller, das (in meinen Augen) stellt sicher, dass eine checkbox ausgewählt wurde,
$this->form_validation->set_rules('age[]', 'age group', 'required|trim');
Beim testen dieses jedoch bekomme ich eine Fehlermeldung für immer checkbox mit name Alter[] ich will einfach nur, um zu überprüfen, dass das Alter[] nicht leer ist.
Wie kann ich das erreichen?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht testen
age[]
so, es ist ein array. Es gibt ein paar Möglichkeiten, dies zu tun, aber was hast durequired
ist nicht einer von Ihnen.Könntest du javascript verwenden, oder durch ausführen des
age[]
Wert durch Ihre eigenen benutzerdefinierten callback-Funktion ist eine Methode.Details für die Verwendung von arrays in CI sind hier:
https://ellislab.com/codeigniter/user-guide/libraries/form_validation.html#arraysasfields
Wenn Sie es tun, die javascript-route, können Sie mit jQuery zu Durchlaufen und Ihre check-Boxen (in einer Klasse verknüpfen) und stellen Sie sicher, dass 1 von Ihnen geprüft wird.
Alte Frage, aber für alle, die kämpfen, um dies zu tun, ich glaube, Sie können dies tun, indem Sie die Einstellung in der Regel auf
age
eher alsage[]
, d.h.