array über mehrere seiten?

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

  • array über mehrere seiten?

    hallo,
    wie kann ich arrays über mehrere Seiten übergeben

    mit hidden-fields funktioniert das ja nicht

    danke

  • #2
    Ablegen als Sessionvariable, oder mit Hilfe von serialize()
    http://www.php.net/manual/de/function.serialize.php

    http://www.dclp-faq.de/q-arrays-persistent.html

    Kommentar


    • #3
      habe dieses Array:
      $artikel = array ($anr1, $anr2, $anr3, $anr4);
      wie übergebe ich dieses in eine Sessionvariable?

      habe bisher immer mit Formularen gearbeitet und da wurde der
      name="artikel" übergeben.

      wie funktioniert das bei arrays da ja in Sessions keine Variablen sondern ihre Namen übergeben werden
      Zuletzt geändert von webkermit; 25.07.2002, 23:20.

      Kommentar


      • #4
        Mit Sessions hab ich nie gearbeitet.

        Aber ich hatte auch schon die Fragestellung der rüberschaufelns von arrays von einer Seite zur Nächsten mit Formular.

        Meine Feststellung ist dass serialize nur geht, wenn die Elemente Zahlen sind. Sind es Buchstaben, gehts nichts, d.h. es kommt nicht alles an.
        Die 1-dim-array-Übergabe hat ich mit implode() vor der Übergabe des Formulars und explode() auf der nächsten Seite gelöst.

        Ich hab auch hier nen script liegen, der ein 2-dim-arrays auf ähnlicher Weise rüberschaufeln kann (gebastel ), falls Interesse

        mfg

        Kommentar


        • #5
          @CHnuschti poste doch mal bitte

          aber wie man das mit Sessions hinkriegt würde mich schon interessieren

          Kommentar


          • #6
            Original geschrieben von webkermit
            @CHnuschti poste doch mal bitte

            aber wie man das mit Sessions hinkriegt würde mich schon interessieren

            mit serialize kann man's so machen:
            <?php
            $poop = Array("poop1" =>"numero uno","poop2" => "numero duo");

            $bytestream = serialize($poop);

            $poop="";

            $temp = tempnam("/tmp", "temp.");

            $fp = fopen($temp,"w");
            fwrite($fp,$bytestream);
            fclose($fp);

            $fp1 = fopen($temp,"r");
            $poop_string = fread($fp1, filesize($temp));
            fclose($fp1);

            $poop_new_array = unserialize($poop_string);

            echo $poop_new_array["poop1"]."<br>".$poop_new_array["poop2"];

            unlink($temp);
            ?>



            beebob

            Kommentar


            • #7
              Übergabe 2D-array
              Es ist eigentlich nur der name und das Trennzeichen für im/explode() zu setzen. Das script ist ein fertiges Beispiel zum Testen und muss für den betr. Fall angepasst werden.
              Keine Sprüche bitte

              PHP-Code:
              <?php

              if (!isset($status) or $status=="anfang")
              {

              $kasten1[0][0] = array( "1.arr0 elem0" "2.arr0 elem0" "3.arr0 elem0" "4.arr0 elem0" );
              $kasten1[0][1] = array( "1.arr0 elem1" "2.arr0 elem1" "3.arr0 elem1" "4.arr0 elem1" );
              $kasten1[1][0] = array( "1.arr1 elem0" "2.arr1 elem0" "3.arr1 elem0" "4.arr1 elem0" );
              $kasten1[1][1] = array( "1.arr1 elem1" "2.arr1 elem1" "3.arr1 elem1" "4.arr1 elem1" );
              $kasten1[2][0] = array( "1.arr2 elem0" "2.arr2 elem0" "3.arr2 elem0" "4.arr2 elem0" );
              $kasten1[2][1] = array( "1.arr2 elem1" "2.arr2 elem1" "3.arr2 elem1" "4.arr2 elem1" );
              $kasten1[2][2] = array( "1.arr2 elem2" "2.arr2 elem2" "3.arr2 elem2" "4.arr2 elem2" );


              // BEGINN FUNKTION ZUR UMWANDLUNG DES 2D-ARRAYS ZUR üBERGABE VIA FORMULAR ************************************
              // ***********************************************************************************************************

              ?>
              <html> <body>
              <form action = "<?php $PHP_SELF ?>"  method = "post">
              </body> </html>
              <?php

              // setze hier den namen des zu übergebenden 2-dimensionalen arrays[$mmm][$nnn]
              $nameuebergabe2darray="kasten1";
              // setze hier das trennzeichen (etwas "unübliches")
              $trennzeichen="§§§§§§";

              for (
              $mmm=0$mmm<count($$nameuebergabe2darray); $mmm++)
              {
                  
              $variablename=$nameuebergabe2darray $mmm;
                  for (
              $nnn=0$nnn<count(${$nameuebergabe2darray}[$mmm]); $nnn++)
                  {
                  
              $tempmmmnnn=implode($trennzeichen, ${$nameuebergabe2darray}[$mmm][$nnn]);    
                  
              ?>

                  <html> <body>
                  <input type="hidden" NAME="<?php echo $variablename?>[]" VALUE= "<?php echo $tempmmmnnn?>">
                  </body> </html>
                  <?php

                  
              }
              }
                  
              ?>
              <html> <body>


              <input type="hidden" NAME="nameuebergabe2darray" VALUE= "<?php echo $nameuebergabe2darray?>">
              <input type="hidden" NAME="mmm" VALUE= "<?php echo count($$nameuebergabe2darray); ?>">
              <input type="hidden" NAME="trennzeichen" VALUE= "<?php echo $trennzeichen?>">
              <input type="hidden" NAME="status" VALUE= "gesetzt">
              <input type="submit" value="weiter">
              </form>

              </body> </html>

              <?php

              // ENDE FUNKTION ZUR UMWANDLUNG DES 2D-ARRAYS ZUR üBERGABE VIA FORMULAR ************************************
              // ***********************************************************************************************************



              }




              if (
              $status=="gesetzt")
              {


              // BEGINN FUNKTION ZUR RÜCKWANDLUNG DES üBERGEBENEN 2D-ARRAYS ********************************************
              // ***********************************************************************************************************

              for ($ppp=0$ppp<$mmm$ppp++)
              {
              $uebergabenamen=$nameuebergabe2darray $ppp;

                  while(list(
              $kkk$vvv) = each(${$uebergabenamen} )):
                  {
                  
              $temprrrsss=explode($trennzeichen$vvv);

                      while(list(
              $rrr$sss) = each($temprrrsss )):
                      ${
              $nameuebergabe2darray}[$ppp][]=$sss;
                        endwhile;
                  }
                    endwhile;
              }







              echo 
              "array $nameuebergabe2darray ist " "<br>";
              if (isset($
              $nameuebergabe2darray ) && is_array($$nameuebergabe2darray )):
                
              reset($$nameuebergabe2darray);
                while(list(
              $k$v) = each($$nameuebergabe2darray )):
                  while(list(
              $r$s) = each(${$nameuebergabe2darray}[$k] )):
                  echo 
              $s " ";
                  endwhile;
                  echo 
              "<br>";
                endwhile;
              endif;

              // ENDE FUNKTION ZUR RÜCKWANDLUNG DES üBERGEBENEN 2D-ARRAYS ********************************************
              // ***********************************************************************************************************



              ?>
              <html> <body>

              <form action = "<?php $PHP_SELF ?>"  method = "post">
                      
              <input type="hidden" NAME="status" VALUE= "anfang">

              <input type="submit" value="zurück">
              </form>

              </body> </html>

              <?php
              }

              ?>

              Kommentar


              • #8
                Original geschrieben von CHnuschti
                Übergabe 2D-array
                Es ist eigentlich nur der name und das Trennzeichen für im/explode() zu setzen. Das script ist ein fertiges Beispiel zum Testen und muss für den betr. Fall angepasst werden.
                Keine Sprüche bitte

                moin!

                die ganzen breaks, kommen die durch filetransfer mit ftp? ich muss auf der arbeit mit ner windose arbeiten und benutz da cuteftp. als ich letztens ein paar seiten geupdatet habe, waren auch da so viele breaks drin (inkl. einer Million ~M eines kollegen *grrr* ).

                weiss einer was das sein kann? mit konsole hab ich so nen schmu nie gehabt.

                der code ist doch gut, wieso deshalb 'dumme sprüche'?


                beebob

                Kommentar


                • #9
                  danke an alle

                  übergebe die Arrays jetzt mit Sessions ich denke das ist die einfachste und sicherste Lösung

                  gruß

                  Kommentar


                  • #10
                    Original geschrieben von webkermit
                    danke an alle

                    übergebe die Arrays jetzt mit Sessions ich denke das ist die einfachste und sicherste Lösung

                    gruß
                    geschmacksache. bedenke, dass du da alles möglich reinpacken kannst. auch mehrdimensionale arrays ...

                    beebob

                    Kommentar

                    Lädt...
                    X