foreach bzw. array problem ??!!!

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • foreach bzw. array problem ??!!!

    hallo,

    hoffe jemand kann mir auf die spünge helfen.

    Ich übergebe ein array (per URL + ID) aus einer Ansammlung von Checkboxen an ein Auswertescript, das die Aufgabe hat die Daten in eine Tabelle(mysql)
    zu speichern.

    Da das array meherer Werte haben kann durchlaufe ich es mit einer foreach Schleife.

    Es wird allerdings nur der erste Wert abgelegt und beim debugging, d.h. echoausgaben wird auch nur immer der Wert angezeigt der an erster Stelle im array steht.

    Hier ein Auszug aus meinem code zu debuggingzwecken der symtomatisch auch für den rest meines Vorhabens zu sein scheint:

    $result = $_REQUEST[id7];
    foreach ( $result as $key => $value ) {
    echo $key . "ist zugeordnet" .$value. "<br />";
    }

    Rechtschreibfehler sind ausgeschlossen in meinem Code -> alles mehrfach überprüft !
    Versandmethoden mittels $_GET auch schon geprüft.

    wie gesagt alle checkboxwerte die übertragen werden kommen auch in diesem script an, habe ich mit :

    echo "checkbox : $_REQUEST[id7]";

    geprüft und es wird der Wert der ausgewählten checkboxen angezeigt.

    Nur beim Arrayzugriff erhalte ich immer wieder nur den ersten Wert.

    Habe auch schon mit Zählschleife gearbeitet, das gleiche Resultat.

    Bitte helft einem Verzweifelten Menschen den Ostermontag zu verschönern :-)


    Vielen Dank

  • #2
    zeig mal bitte noch zusätzlich, wie der html-code aussieht, mit dem die checkboxen erstellt werden.

    Kommentar


    • #3
      <td><input type="checkbox" name="cbox[]" value="1" border="0">

      Kommentar


      • #4
        merkst du das problem?

        http://tut.php-q.net/formulare.html#u13

        Kommentar


        • #5
          nicht wirklich !

          im tutoriel ist lediglich die versandmethode eine ander mit post.
          ich übergebe das array mit ner url an das verarbeitungsscript.
          ist das etwa falsch ?

          Kommentar


          • #6
            dann schau mal ins
            PHP-Code:
            print_r($_GET['cbox']); 
            und nicht ins $_REQUEST[id7].

            Kommentar


            • #7
              tipp:

              folgendes
              PHP-Code:
              <input type="checkbox" name="hallo" value="1" />

              <?php
              echo $_REQUEST['ciao'];
              ?>
              geht nicht
              EDIT:
              mist... da war jemand schneller ;-)
              Zuletzt geändert von chrpun; 17.04.2006, 16:27.
              2 meiner pages:

              Kommentar


              • #8
                Sorry war mein fehler,

                du hast zwar prinzipiel recht ich mein problem nicht richtig gepostet.

                ich hatte noch ne bestätigungseite dazwischen und die verwendet url + id zur übergabe an das auswertescript und da habe ich schon zur fehlersuche angesetzt.

                aber auch da werden die übergeben arraydaten mit

                echo "<pre>";
                print_r($_REQUEST['id7'];
                echo "</pre>";

                alle ausgegeben !

                in meinem testfall sind das 1 , 9,17 als indexe

                Wenn ich aber wie oben mit foreach das ganze durchlaufe bzw. mit ner Zählschleife und zu testzwecken eine echoausgabe mache geht es nicht !

                es wird nur der erste array wert angezeigt in diesem falle 1 und 9 und 17 nicht.

                Kommentar


                • #9
                  jetzt versteh ich gar nix mehr...

                  bevor das was du gepostet hast war/ist noch ne seite dazwischen?
                  was wird da gemacht?
                  2 meiner pages:

                  Kommentar


                  • #10
                    oh je , wollte niemanden hier noch mehr verwirren wie mich selbst.

                    auf welcher seite die auswertung erfolgt ist ja schliesslich egal

                    also, es geht hier eigentlich nur darum das die arraywerte die ich aus einem formular von checkboxen nicht mit einer schleife durchlaufen kann und ausgeben kann.

                    die im array enthaltenen werte habe ich durch echoausgaben überprüft .
                    siehe oben
                    die sind in meinem script auch verfügbar wenn ich sie
                    mittels schleife nach der echoausgabe weiterverarbeiten will
                    kommt es zu dem oben beschriebenen problem, das bei der for schleife
                    nur der erste wert ausgegeben wird und die beiden anderen die sich zu diesem zeitpunkt definitiv im array gespeichert sind nicht.

                    ob foreach oder zählschleife , sollte doch egal sein ich versuche nur den fehler einzugrenzen - vielleicht ist es auch wild guess


                    danke

                    Kommentar


                    • #11
                      dann zeig mal, was print_r() an dieser stelle liefert.

                      Kommentar


                      • #12
                        hattest du jetzt eigentlich mal
                        PHP-Code:
                        $_REQUEST['cbox'
                        probiert?
                        2 meiner pages:

                        Kommentar


                        • #13
                          also,

                          formularseite sendet mit url + id7 [cbox] den arrayinhalt von drei derzeit zu testzwecken angeklickten checkboxen !

                          auswerteseite (test ob daten angekommen):

                          echo "<pre>";
                          print_r($_REQUEST['id7'];
                          echo "</pre>";


                          ergebnis :

                          1,9,17 ( das sind die arrayindexe der checkboxen-> insgesamt gibt es ca. 20 verschiedene checkboxen die values in einem array cbox ablegen !)

                          ergo im array sind wertepaare mit den zuvor genannten 1,9,17 index werten enthalten

                          print gibt sie auch aus

                          aber

                          foreach und zählschleife nicht, zählschleife (s.o.) bleibt nach dem ersten ausgabe (1) stehen.

                          Kommentar


                          • #14
                            irgendwie langweilts daß Du immer das selbe postest.

                            Wie wärs mal mit dem Ergebnis von print_r -
                            so was kann man per copy/paste machen...

                            Kommentar


                            • #15
                              jetzt habe ich das auch mit print_r verstanden
                              und sehe das problem aber nicht die lösung, oder ich ahne sie.

                              das ist die ausgabe von

                              $result =array($_REQUEST[id7]);
                              echo"<pre>";
                              print_r($result);
                              echo"</pre>";

                              Array
                              (
                              [0] => 1 9 17
                              )

                              alle drei werte der checkboxen stehen in index [0]

                              bei einem manuellen erstellten array sieht das ergebnis wie erwartet aus :

                              $test=array(1,9,17);

                              echo"<pre>";
                              print_r($test);
                              echo"</pre>";

                              Array
                              (
                              [0] => 1
                              [1] => 9
                              [2] => 17
                              )

                              Liegt es daran das ich das array mit der url übergebe ?

                              Kommentar

                              Lädt...
                              X