2009-03-02 2 views
2

Hier ist meine Situation: Ich baue eine kleine Website, wo Sie bei der Registrierung auswählen können, an welchen Tagen Sie für etwas verfügbar sind.PHP bekommen die Tage, an denen Sie ohne viele Variablen verfügbar sind

Mondaymorning Mondayafternoon Tuesdaymorning Tuesdayafternoon etc ...

Den ganzen Weg sundayafternoon.

Ich bin formchecking dieses offcourse, in PHP, und ich muss 14 Variablen deklarieren und über jedes einzelne gehen, um festzustellen, ob das Kontrollkästchen geklickt wurde oder nicht.

Jetzt frage ich mich, gibt es keinen einfacheren Weg? Nun, dies sind Kontrollkästchen, es ist nicht wie beim Hochladen von Dateien, die Sie einfach [] zum Namensattribut in HTML hinzufügen und sie werden als Array hochgeladen.

Aber das wäre praktisch. Weiß jemand, wie ich so etwas erreichen kann?

Antwort

10

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

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

Dann einfach Schleife über die $_POST['available'] Array in Ihrem Formular-Verarbeitungscode.

+0

Ich wusste das nicht. Vielen Dank. – Vordreller

1

Aufbauend auf Chads Antwort, hier ist der Code, den Sie Variablen verwenden würde, um durch:

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

Wenn Sie sind besorgt über die Sicherheit oder Leistung, und Sie sollten sein, vielleicht sollten Sie dies 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 

} 
Verwandte Themen