2 Stimmen

PHP erhält die Tage, an denen Sie verfügbar sind, ohne eine Vielzahl von Variablen

Das ist meine Situation: Ich baue eine kleine Website auf, auf der man bei der Registrierung auswählen kann, an welchen Tagen man für etwas verfügbar ist.

Montagmorgen Montag Nachmittag Dienstagmorgen Dienstagnachmittag usw...

Die ganze Zeit bis Sonntagnachmittag.

Ich bin formchecking diese offcourse, in PHP, und ich brauche, um 14 Variablen zu deklarieren und gehen Sie über jede ein, um festzustellen, ob das Kontrollkästchen angeklickt wurde oder nicht.

Jetzt frage ich mich, ob es nicht einen einfacheren Weg gibt. Es handelt sich hier um Kontrollkästchen, es ist nicht so, dass man beim Hochladen von Dateien einfach [] zum Namensattribut in HTML hinzufügt und sie dann als Array hochgeladen werden.

Aber das wäre doch praktisch. Weiß jemand, wie ich so etwas in Gang bringen kann?

10voto

Chad Birch Punkte 70946

Eigentlich können Sie einfach hinzufügen [] an das Ende der Namen anhängen, stellen Sie nur sicher, dass Sie alle ihre Werte anders setzen.

<input type="checkbox" name="available[]" value="Mon AM" />
<input type="checkbox" name="available[]" value="Mon PM" />

Dann einfach eine Schleife über die $_POST['available'] Array in Ihrem formularverarbeitenden Code.

1voto

Andrew Ensley Punkte 11220

Aufbauend auf der Antwort von Chad, hier ist der Code, den Sie verwenden würden, um durch die Variablen zu gehen:

foreach($_POST['available'] as $a)
{
    //Do stuff with $a
}

1voto

alex Punkte 457905

Wenn Sie sich Sorgen um die Sicherheit oder die Leistung machen, und das sollten Sie, sollten Sie dies vielleicht auch tun.

If (count($_POST['available']) > 14) {

    softErrorToClient('The data you entered could not be analysed. Please try again.');
    // log this error... someone's being naughty

}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X