Array mehrfach weiterleiten

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

  • Array mehrfach weiterleiten

    Hallo,
    ich habe lange gesucht, aber nirgends eine Antwort auf mein Problem gefunden (oder die Antworten nicht erkannt... )

    Ich habe drei Formulare, die in einem Script ablaufen.
    Sinn der Sache ist, dass ab einer bestimmten Frage bei Antwort "JA" andere Fragen kommen sollen, als bei "NEIN".

    Am Ende sollen alle Variablen (aus dem ersten und jeweiligen zweiten Formular) zusammen per formmailer verschickt werden.

    Nun habe ich aber im ersten Teil eine Checkbox-Frage mit Mehrfachantworten.

    Ich bekomme aber dieses verd.. Array nur in die zweite Stufe, in der dritten ist es weder leer, bzw. zeigt es nur "Array" an.

    Hier mal zum besseren Verständnis der Fragebogen als Testversion:
    http://www.enrasys.de/test/test.php
    (Die "print"-Ausgabe dient nur der Überprüfung)

    Und hier das Script gezippt : http://www.enrasys.de/test/test.zip

    Habt ihr eine Idee für mich? Bin ich zu blöd? Oder ist die Syntax heute böse zu mir?

    Ich freue mich über jeden Kommentar!

    Gruß
    Arne

  • #2
    ist doch klar, du nimmst nur das letze Element des Array mit. Schiebe die Ausgabe der hidden-Felder in die foreach-Schleife rein dann hast du sie im nächsten Formular.

    Kommentar


    • #3
      Kennst du var_dump() ? Wenn nicht dann ist es höchste Zeit dat mal kennenzulernen. Vermutlich hast du ein mehrdimensionales Array.
      Also mal den output von var_dump($array) anschauen und ggf posten.

      Gruss

      tobi
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #4
        @Jahlives: Ich war der Meinung, kein mehrdimensionales Array erstellt zu haben.
        Hier der Output von var_dump():
        Schulleiter/-in array(2) { [0]=> string(15) "Schulleiter/-in" [1]=> string(7) "Anderes" } Anderes array(2) { [0]=> string(15) "Schulleiter/-in" [1]=> string(7) "Anderes" }

        Nur helfen tut mir das jetzt auch nicht weiter - so langsam sehe ich den Wald vor lauter Bäumen nicht mehr...

        @asp2php: Das mit dem letzten Element habe ich befürchtet, aber wie ich die Ausgabe der hidden-Felder mit in die Schleife nehmen soll, ist mir nicht ganz klar.
        Ich hatte es schon mal so versucht:
        PHP-Code:
        print "<input type=\"hidden\" name=\"Sie_sind[$v]\" value=\"".$Sie_sind[$v]."\">"
        Hat aber nicht geklappt, was dich jetzt wahrscheinlich nicht verwundert (Mich auch nicht mehr...)

        Für heute (gestern) gebe ich es auf...

        Danke und gute Nacht!
        Arne

        Kommentar


        • #5
          Arrays über mehrere Formularseiten weitergeben geht mit http://www.php.net/manual/en/function.serialize.php & http://www.php.net/manual/en/function.unserialize.php & einem hidden field astrein!

          Helau!

          Kommentar


          • #6
            Vielen Dank für die Hilfe, aber bisher kapiere ich es immer noch nicht.

            Ich habe mir serialize() und unserialize() mal angesehen und wie folgt in mein Script (http://www.enrasys.de/test/test.zip) eingebaut:

            Erster Formular-Teil vor dem Formular:
            PHP-Code:
            $variable2 serialize($Sie_sind); 
            Und im Formular:
            <input type='hidden' name='variable2' value='<? echo $variable2; ?>' >

            In den beiden Unterformularen habe ich dann im Formularteil dieses hidden-field widerholt.

            Im letzten Teil dann:
            PHP-Code:
            $variable3 unserialize($_POST['variable2']);
            print_r($variable3); 
            Es funktioniert aber leider noch immer nicht.
            (var_dump () meldet auch "bool(false)")

            Ich glaub´ ich bin zu blöd für PHP...

            Hat noch jemand eine gute Idee? Mache ich in der Syntax etwas falsch oder ist der Fehler ein logischer?

            Gruß
            Arne

            Kommentar


            • #7
              Der Lösung nahe...

              Hallo,

              vielen Dank für eure Tipps!
              Nach ein bisschen Tüfteln bin ich jetzt weiter gekommen, als im letzten Post vermeldet.
              (Sorry dafür, das nächste Mal tüftle ich gleich ein bisschen länger )

              Ich bekomme jetzt per SESSION tatsächlich das ARRAY rüber in den dritten Teil.
              Dort löse ich es auf und zeige es mit [COLOR=blue]print[/COLOR] an:

              PHP-Code:
              foreach ($_SESSION['Sie'] as $v) {
               print 
              "$v"

              Aber:
              PHP-Code:
              echo $v
              zeigt mir wieder nur den letzten Wert im Array.

              [COLOR=BLUE]echo[/COLOR] wäre aber nötig, damit ich die Variable per Formmailer an mich versenden kann, was mit
              <input type="hidden" name="Konzept" value="<? echo $Konzept; ?>">
              in anderen Fällen sonst ganz gut klappt.

              Nun bin ich (mal wieder) echt ratlos: Die Auflösung des Arrays erfolgt doch im gleichen Formularteil, wieso kann ich die Variable mit [COLOR=blue]print[/COLOR] aber nicht mit [COLOR=blue]echo[/COLOR] ausdrücken?

              Habt ihr noch einen (hoffentlich letzten) guten Tipp für mich?
              Das Script findet sich wieder hier

              Vielen Dank und sonntägliche Grüß
              Arne

              Kommentar


              • #8
                PHP-Code:
                print_r$dein_array ); 

                Kommentar


                • #9
                  Hey danke!

                  Das hat schon wieder etwas weiter geholfen.
                  Ich habe mit [COLOR=blue]print_r()[/COLOR] mit Paramter TRUE eine neue Variable erstellt, die ich dann mit [COLOR=blue]echo[/COLOR] ausgeben kann.

                  Aber: Leider bleibt die Ausgabe nur innerhalb der Klammern intakt - ich bekomme sie nicht in das HTML-Formular übergeben.

                  Dieser Code geht und gibt das Array auch richtig aus:
                  PHP-Code:
                   foreach ($_SESSION['Sie'] as $v) {
                  $results print_r($vtrue);
                  echo 
                  $results;

                  Aber ich möchte die Ausgabe von $results eigentlich in dem Formularteil haben, der darunter kommt:

                  <form name=request enctype="multipart/form-data" method=post action=formmail.php>
                  <input type="hidden" name="Beruf" value="<? echo $results; ?>">
                  <br><b><u>Vielen Dank, die Befragung ist nun abgeschlossen.Ihre Angaben waren:</u></b><br><br>
                  Sie sind:&nbsp;<b><? echo $results; ?></b><br>
                  <br><br><center><input type=submit value="Fragebogen senden">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="button" value="Zurück und ändern" onClick="self.location.href='javascript:history.back()'"></center>
                  </form>

                  (Das Script zur Ansicht wieder hier )

                  Hat jemand eine Idee, woran nun der letzte Schritt hängt?

                  Vielen Dank und viele Grüße
                  Arne

                  Kommentar

                  Lädt...
                  X