Kalle_B: Einlesen eines checkbox- Arrays

Hallöle,

irgendwie stehe ich auf dem Schlauch. Ich habe mehrere Checkboxen mit gleichem Namen:

<input type=checkbox name='test[]' value=test_1> test_1<br>
<input type=checkbox name='test[]' value=test_2> test_2<br>
<input type=checkbox name='test[]' value=test_3> test_3<br>

und müsste, wenn ich mindestens eine anklicke doch ein Array bekommen:

var_dump( $_POST['test'] );
Ausgabe:
string(5) "Array"

echo "[".$_POST['test'][0]."]<br>\n";
Ausgabe:
[A]
unabhängig davon, ob ich 0 .. 3 der Boxen anklicke.

Was wird da eigentlich übergeben und woher kommt der String "Array"?

LG Kalle

  1. Hellihello

    Was wird da eigentlich übergeben und woher kommt der String "Array"?

    Der String kommt aus Deinem Script und überschreibt das Array, was übergeben wird.

    Mach doch mal var_dump($_REQUEST);

    bei $string = "abc";
    gibt $string[0] "a" aus.

    BTW: Good practice to quote attribute values in xy-ml;

    Dank und Gruß,

    frankx

    --
    tryin to multitain  - Globus = Planet != Welt
    1. Hellihello

      ach, du Sch...

      die Standardroutine
        // MAGIC QUOTES ENTFERNEN
        if ( get_magic_quotes_gpc() )
        {
          foreach($_GET    as $k => $v ) $_GET   [$k] = stripslashes($v);
          foreach($_POST   as $k => $v ) $_POST  [$k] = stripslashes($v);
          foreach($_COOKIE as $k => $v ) $_COOKIE[$k] = stripslashes($v);
        }

      verträgt sich wohl nicht Arrays.

      Ohne die Zeilen geht es. Danke.

      Kalle

      1. Hellihello

        wie denn auch, es ist ja ein Array, das $v, es wird dann als String ausgegeben. Du kannst ja sagen if(!is_array($v)).

        Dank und Gruß,

        frankx

        --
        tryin to multitain  - Globus = Planet != Welt
      2. echo $begrüßung;

        die Standardroutine
          // MAGIC QUOTES ENTFERNEN
          if ( get_magic_quotes_gpc() )
          {
            foreach($_GET    as $k => $v ) $_GET   [$k] = stripslashes($v);
            foreach($_POST   as $k => $v ) $_POST  [$k] = stripslashes($v);
            foreach($_COOKIE as $k => $v ) $_COOKIE[$k] = stripslashes($v);
          }

        verträgt sich wohl nicht Arrays.

        Die ist ja auch nicht Standard sondern Mist. Nimm doch die aus dem PHP-Handbuch-Kapitel zu Disabling Magic Quotes, die lässt auch Arrays leben.

        echo "$verabschiedung $name";

  2. Hello,

    irgendwie stehe ich auf dem Schlauch. Ich habe mehrere Checkboxen mit gleichem Namen:

    <input type=checkbox name='test[]' value=test_1> test_1<br>
    <input type=checkbox name='test[]' value=test_2> test_2<br>
    <input type=checkbox name='test[]' value=test_3> test_3<br>

    und müsste, wenn ich mindestens eine anklicke doch ein Array bekommen:

    var_dump( $_POST['test'] );

    --> ???

    Ausgabe:
    string(5) "Array"

    Und was stehe in den folgenden Zeilen, die ich mit den drei Fragenzeichen gekennzeichnet habe?

    Da müssten dann die Elemente des Arrays 'test' folgen, also alle <input>-Values, die markiert worden sind.

    Ein harzliches Glückauf

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Hello,

      [...]

      und müsste, wenn ich mindestens eine anklicke doch ein Array bekommen:

      var_dump( $_POST['test'] );

      Ausgabe:
      string(5) "Array"

      --> ???

      So war es gemeint!
      Ist noch früh und schöööön warm :-)

      Ein harzliches Glückauf

      Tom vom Berg

      --
      Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de