Kingpin: Checkboxen

Moin,

ich hätte da mal ne Frage zum Thema Checkboxen in PHP, und zwar:

Wie kann ich überprüfen ob mind. 1 Feld in einem pulk von mehreren Checkboxen angeklickt/angehakt wurde ?

Folgendes funktioniert leider nicht :(

/*

<?

if (isset($_POST) && $_POST["aktion"] == "testen"){

for ($i=0;$i<sizeof($anfrage);$i++){
  if ($anfrage[$i] != true){
    echo "Error";
  }else{
    echo $anfrage[$i];
  }
}

}

?>

<html>
<head>
      <title>Test</title>
</head>

<body bgcolor="#FFFFFF">
<font face="Verdana" size="2" color="#000000">

<form name="test" method=POST action="test2.php">

<input type="hidden" name="aktion" value="testen">

<input type="checkbox" name="anfrage[]" value="1">

<input type="checkbox" name="anfrage[]" value="2">

<input type="submit" name="submit">

</form>

</font>
</body>
</html>

/*

Hoffe auf eure Hilfe !

Gruss
Bjoern

  1. Guten Morgen,

    Wie kann ich überprüfen ob mind. 1 Feld in einem pulk von mehreren Checkboxen angeklickt/angehakt wurde ?

    if (isset($_POST) && $_POST["aktion"] == "testen"){

    // was bezweckst Du mit isset($_POST) ?
    // wenn schon isset($_POST["aktion"]), DU willst doch prüfen, ob die Vraibale überhaupt gesetzt ist?

    for ($i=0;$i<sizeof($anfrage);$i++){
      if ($anfrage[$i] != true){

    // Du musst auf "on" prüfen oder die Umkehrung
    // if(!$anfrage[$i]) {
    // checkboxen-Variablen enthalten entweder nichts oder "on"

    hih
    ciao
    romy

    --
    DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
    ->Alles ist gut wenn es aus Schokolade ist
    1. moin,

      ähm - klar brauch ich den isset($_POST) alleine nicht, aber ob ich nun einmal oder doppelt prüfe war und ist nich gegenstand meiner Frage gewessen, ist doch ein Ding des Programmierers oder nicht ?!

      auf 'on' prüfen, ja toll, du kannst nur auf true oder false prüfen, wie soll ich denn auf 'on' prüfen, ich will ja nicht auf den value prüfen ?!
      Der Umkehrschluss war mir auch klar, aber der hat auch nicht funktioniert !

      Gruss
      Bjoern

      1. Hi Kingpin,

        ähm - klar brauch ich den isset($_POST) alleine nicht, aber ob ich nun einmal oder doppelt prüfe war und ist nich gegenstand meiner Frage gewessen, ist doch ein Ding des Programmierers oder nicht ?!

        Das war nicht meine Aussage, ich konnte mir nicht vorstellen, dass diese Syntax überhaupt geht, aber scheinbar ja doch...ja stimmt Du prüfst ja einfach nur ob das Post array vorhanden ist oder nicht.
        Wollte Dir nicht reinreden, es war mir unklar

        auf 'on' prüfen, ja toll, du kannst nur auf true oder false prüfen, wie soll ich denn auf 'on' prüfen, ich will ja nicht auf den value prüfen ?!

        ich denke schon, dass Du auf $deincheckboxName == "on" prüfen kannst

        Der Umkehrschluss war mir auch klar, aber der hat auch nicht funktioniert !

        warum? wo liegt da der Fehler, da es in jedem Falle gehen sollte
        Hast Du eine Fehlermeldung?
        if(!$deincheckboxName) echo "ich bin angeklickt";
        else echo "bin nicht geklickt";

        hoffe es geht
        ciao
        romy

        --
        DIE ROMY AUS L. AN DER P. SAGT DANKE UND AUF WIEDERSEHEN
        ->Alles ist gut wenn es aus Schokolade ist
        1. hi romy,

          du kannst den Syntax ja gerne ausprobieren, er funktioniert, bloss halt nicht so wie er soll ;-))

          Ich bekommen keine Fehlermeldung, wie gesagt, es liegt nicht am Syntax ...
          Ich will meinen 'Error' bekommen wenn keine Checkbox angeklickt/angehakt wurde. Wenn ich es mit deiner Methode probiere überprüfe ich den value der Checkboxen.
          Ich kann es zwar wie folgt machen aber das ist bei vielen Checkboxen ziemlich umständlich ...

          /*

          for ($i=0;$i<sizeof($anfrage);$i++){
          if ($anfrage[$i] != "1" || $anfrage[$i] != "2"){
          echo "Error";
          }else{
          echo $anfrage[$i];
          }
          }

          */

          Naja, vielleicht bekomme ich es ja doch noch irgendwie hin, trotzdem danke ...

          Gruss
          Bjoern

  2. Hallo,

    Wie kann ich überprüfen ob mind. 1 Feld in einem pulk von mehreren Checkboxen angeklickt/angehakt wurde ?

    Folgendes funktioniert leider nicht :(

    /*

    ^....?

    <?

    if (isset($_POST) && $_POST["aktion"] == "testen"){

    for ($i=0;$i<sizeof($anfrage);$i++){

    ^...... ist register_globals = On, oder warum
                                      verwendest Du nicht $_POST['anfrage']?

    if ($anfrage[$i] != true){
          echo "Error";
        } else {
          echo $anfrage[$i];
        }
      }
    }

    ?>

    Wenn keine Checkbox checked ist, wird $_POST['anfrage'] auch nichts enthalten. sizeof($_POST['anfrage']) sollte also imho einen oder gar zwei Fehler melden (zumindest wenn alle Fehlermeldungen angeschaltet sind). Deswegen wird Deine Schleife auch nicht durchlaufen. Erst wenn überhaupt eine Checkbox angekreuzt ist, wird die Schleife durchlaufen. Und dann auch nur für die "angekreuzten" sprich übertragenen Checkboxwerte. Also wird auch jetzt $anfrage[$i] immer true sein, weil es einen Wert enthält (außer, Du hast eine checkbox mit value="" definiert ;-)

    [...]

    <input type="checkbox" name="anfrage[]" value="1">

    <input type="checkbox" name="anfrage[]" value="2">

    <input type="submit" name="submit">

    [...]

    Gruß Alex

    P.S.: Ich hoffe mit dem PS komme ich über die 25%-Hürde hinweg. Wenn nicht kann ich auch noch hier so einiges schreiben, was mir gerade so durch den Kopf geht: Z.B. spielt unsere Band (BIG BANG GANG http://www.bigbanggang.de) am 20.12.2002 im Franzis in Wetzlar. Wer also kommenden Freitag nichts vorhat und sich in der Nähe aufhält, ist herzlich eingeladen vorbeizuschauen und mit uns eine Soul- und Blues-Party zu feiern (Eintritt iirc 5,-EUR)

  3. Hi,

    ich hätte da mal ne Frage zum Thema Checkboxen in PHP, und zwar:
    Wie kann ich überprüfen ob mind. 1 Feld in einem pulk von mehreren Checkboxen angeklickt/angehakt wurde ?

    ich hab hier [pref:t=32410&m=175599] mal ein Skript gepostet, das alle angeklickten Checkboxen einer Gruppe in ein Array schreibt. Dieses dedizierte Array kannst Du dann mit count($ausstattung) (sh. Beispielskript) prüfen.

    viele Grüße
    Achim Schrepfer

    1. Hi,

      danke, dein implode statt meine schleife hat mir weitergeholfen ;-))

      jetzt funtzt es.

      Gruss
      Bjoern