kostenloser Webspace werbefrei: lima-city


PHP arrays - Problem

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    c****4

    Hi limaianer!
    Ich habe ein Problem mit einem "script", und zwar wollte ich, als anfänger, mal etwas mit arrays ausprobieren rausgekommen ist folgendes:

    <?PHP
    
    $array = array();
    echo "<form action='index.php?site=checkbox' method='POST'>";
    for ($i=0;$i<2;$i++) {
     echo "<input type='checkbox' value='1' name='$array[$i]'><br />";
    }
    echo "<input type='submit' value='OK' name='send'></form>";
    
    $senden = $_POST['send'];
    
    if ($senden)  {
     if ($array[0]) {
      echo "die erste checkbox wurde angekreuzt"; 
     }
     elseif ($array[1]) {
      echo "die zweite checkbox wurde angekreuzt";
     }
     else {
      echo "keine checkbox wurde ausgewählt";
     }
    } else {
     echo "mist wars...";
    }
    ?>


    Leider funktioniert dies nicht! Aber warum?

    Es soll folgendes passieren:
    Klickt man auf eine checkbox un dann 'ok' soll entweder dastehen 'erste checkbox angekreuzt' bzw. 'zweite checkbox angekreuzt'... Leider funktioniert das nicht!?

    Ich erzeuge die checkboxen mit einer for schleife... als value hab ich der einfachheit halber mal 1 genommen. Wenn ich nun aber überprüfen möchte ob die checkbox gesetzt wurde funktioniert es nicht, aber ichw eis nicht warum!

    Bitte helft einem anfänger ;)

    Matze



    Achja: nicht wundert, dass das elseif mit beiden angekreuzten checkboxenfehlt <- is ja auch egal...
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hallo ct2004,
    du hast nirgendwo definiert, wie die Formulareingaben (Aktivieren der Checkboxen) in Variablen (oder in deinem falle ein Array) übernommen werden.
    Du versuchst, einen leeren Array-Eintrag als Namen für die Checkbox zu wählen und versuchst anschließend noch das leere Array auszulesen.
    Da das Array aber leer ist, ist $array[0] = 0, und $array[1] = 0, deine if-Abfrage wird also immer vernent und die else-Anweisung ausgeführt...


    gruß
    ferdinand24
  4. Versuch mal das:

    echo "<input type='checkbox' value='1' name='$array[$i]'><br />";


    durch

    echo "<input type='checkbox' value='1' name='array[$i]'><br />";


    ersetzen, denn sonst wird $array durch "" ersetzt, weil $array keinen Wert hat und füg nach

    $senden = $_POST['send'];


    $array = $_POST['array'];


    ein, weil hier globals_off gesetzt ist.
  5. Autor dieses Themas

    c****4

    ahhhhhhh...

    <?PHP
    
    $array = array();
    echo "<form action='index.php?site=checkbox' method='POST'>";
    for ($i=0;$i<2;$i++) {
     echo "<input type='checkbox' value='1' name='array[$i]'><br />";
    }
    echo "<input type='submit' value='OK' name='send'></form>";
    
    $senden = $_POST['send'];
    $array  = $_POST['array'];
    
    if ($senden)  {
     if ($array[0]) {
      echo "die erste checkbox wurde angekreuzt"; 
     }
     elseif ($array[1]) {
      echo "die zweite checkbox wurde angekreuzt";
     }
     else {
      echo "keine checkbox wurde ausgewählt";
     }
    } else {
     echo "mist wars...";
    }
    ?>


    funktioniert einwandfrei. danke! aber wieso kann man auf einmal array[$i] schreiben denn array gibts ja nur als variable... un wieso muss ich $array nochmal definieren obwohl ich es oben bereits getan habe?!
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!