dynamisches Array......

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

  • dynamisches Array......

    Hallo Leute;
    ich will daten in einem dynamischen Array abspeichern und im selben Script wieder drauf zugreifen.
    Zunächste habe ich eine Tabelle die in der Anzahl von Zeilen und Spalten vom Benutzer angepasst werden können; die Daten dieser Tabelle sollen dann in ein 2-Dimensionales dynamisches Array geschrieben werden.
    (in Textfelder). Nach betätigen eines Submit Buttons sollen diese Daten im selben Script abgefangen werden und in eine Db geschrieben werden..

    Kann mir da evt. einer Helfen??? Ich hab keine richtige Ahnung wie das mit dynamischen Arrays in PHP aussieht....Außerdem hab ich dann noch das Problem, dass das Array in einer for-Schleife in einem Input type="text" Feld steht; wie soll ich hier den Namen des Textfeldes vergeben???

  • #2
    Re: dynamisches Array......

    dass das Array in einer for-Schleife in einem Input type="text" Feld steht; wie soll ich hier den Namen des Textfeldes vergeben???
    Code:
    <input
      type="text"
      name="baum[]"
      ...
    />
    so?

    den rest hab ich noch viel weniger verstanden ...
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      Verstehs auch nicht ganz.. aber sowas wird wohl weiterhelfen..

      PHP-Code:
      <form name="form1" method="post" action="">
        <input type="checkbox" name="checkbox[]" value="id=1">
        <input type="checkbox" name="checkbox[]" value="id=2">
        <input type="checkbox" name="checkbox[]" value="id=3">
        <input type="submit" name="Submit" value="Senden">
      </form>
      <? 
      if(isset($_POST['Submit'])) {
      print_r($_POST['checkbox']); }
      ?>
      Die Suche verwendet?
      _____________
      Ist das so? Scheinbar muss das so?! Oder ist es vielleicht viel leichter...
      [color=red]Auch ich beantworte keine mails bei php problemen! Für das gibts ja das Forum!![/color]

      Kommentar


      • #4
        Also, hier mal ein wenig Code zur Verständniss:

        $staerke=array()

        ////////////////////////Abfangen der Variablen///////////////////////
        if (isset($HTTP_POST_VARS["staerke[$i]"]))
        {
        $staerke[$i] = $HTTP_POST_VARS["staerke[$i]"];
        }
        /////////////////////////////////////////////////////////////////////////

        /////////////$anz= Anzahl der Spalten(durch benutzer variabel)///////////////

        for($i=0;$i<$anz;$il++)
        {
        /////////Die Felder, in die die Daten eingegeben werden////////////////////

        echo("<td width=\"20%\"><input type=\"text\" name=\"staerke[$i]\" value=\"\"></td>");
        }


        ////////////////////////////Submit-Button/////////////////////////////
        <form action="$_PHP_SELF" method="POST">
        <input type=......
        </form>

        Kommentar


        • #5
          Das Problem ist ja, dass es je nach Anzahl der Spalten jedesmal neue Bezeichner entstehen......Und das Abfangen durch
          if(isset($HTTP_POST_VARS)..... funktioniert so nicht

          Kommentar


          • #6
            Hast Du mein beispiel mal ausprobiert? Vielleicht versteh ich Dich ja auch falsch...
            _____________
            Ist das so? Scheinbar muss das so?! Oder ist es vielleicht viel leichter...
            [color=red]Auch ich beantworte keine mails bei php problemen! Für das gibts ja das Forum!![/color]

            Kommentar


            • #7
              probier mal statt
              $HTTP_POST_VARS["staerke[$i]"]
              des hier:
              $HTTP_POST_VARS["staerke"][$i]

              btw: Warum benutzt du nicht $_POST?

              Kommentar


              • #8
                Na ja, ich hab mir das halt so angewohnt;
                Die Übergabe bei einem Eindimensionalen Array klappt jetzt schon mal soweit:

                EINDIMENSIONAL:

                $staerke=array();
                /////////////////////////Abfangen am Kopf/////////////////////////////////////////
                if (isset($HTTP_POST_VARS["staerke"]))
                {
                $staerke = $HTTP_POST_VARS["staerke"];
                }

                ////////////////////////Ausgabe zum testen/////////////////////////////////////
                echo("Stäreke 1: $staerke[0]<br>
                Stäreke 2: $staerke[1]<br>
                Stäreke 3: $staerke[2]<br>
                Stäreke 4: $staerke[3]<br>");

                ///////////////////////////////Hauptteil///////////////////////////////////////////
                for($i=0;$i<$material_anz;$i++)
                {
                echo("<td width=\"20%\"><input type=\"text\" name=\"staerke[]\" value=\"$staerke[$i]\"></td>");
                }


                Und Zweidimensional:
                ////Kopf////
                if (isset($HTTP_POST_VARS["anzahl[][]"]))
                {
                $anzahl = $HTTP_POST_VARS["anzahl"];
                }
                echo("anzahl 1: $anzahl[0][0]<br>
                anzahl 2: $anzahl[0][1]<br>
                anzahl 3: ");


                ///Haupteil///
                for($i=0;$i<$format_anz;$i++)
                {
                for($i2=0;$i2<$material_anz;$i2++)
                {
                echo("<td width=\"20%\"><input type=\"text\" name=\"anzahl[[\" value=\"$anzahl[$i][$i2]\"></td>");
                }
                echo("</tr>");
                }


                Was mache ich beim 2-Dimensionalen falsch???? Der gibt mir nur Mist aus (Array[0],.....)

                Kommentar


                • #9
                  Ich nehme mal an dass das Problem im Stringnamen des HTTP_POST_VARS elements liegt :

                  eventuell ist ein Weg die WErte des stärkearrays vor dem Posten per JS in ein einziges Array zuu laden und dann dieses in PHP zu lesen und wieder zu splitten

                  Nur so n Gedanke
                  chansel0049
                  ----------------------------------------------------
                  if you've reached the bottomline - dig further!
                  Übersetzer gesucht? http://www.babelport.com

                  Kommentar


                  • #10
                    Also nochmal:
                    1. aus <input type... name="anzahl[][]" ...> wird $HTTP_POST_VARS["anzahl"][..][..] und nicht HTTP_POST_VARS["anzahl[..][..]"]!
                    2. echo "$anzahl[0][0]" geht nicht weil er des als echo $anzahl[0]."[0]" interpretiert. Deshalb echo "text".$anzahl[0][0]."noch mehr text" schreiben.

                    Kommentar


                    • #11
                      Benutz doch mal bitte die [PHP]-Tags, dann erhöht sich die Chance, dass die Leute durch deinen Code durchblicken.
                      hopka.net!

                      Kommentar


                      • #12
                        Also, ich hab jetzt noch mal alle Varianten durchgespielt, aber ich bekomme es nicht hin; mit einem 1-Dimensionalen klappt es wunderbar aber eben nicht mit einem 2 Dim. Hat sonst keiner mehr ne Ahnung, wie das funktionieren könnte???

                        Kommentar


                        • #13
                          1-Dimensionales Array:
                          PHP-Code:
                          $array['dimension1']; 
                          2-Diemensionales Array:
                          PHP-Code:
                          $array['dimension1']['dimension2']; 
                          Das ist im Prinzip alles, was du wissen musst!

                          Was du jedoch permanent machst, ist die eckigen Klammern an total falsche Stellen zu packen - da ist es auch kein Wunder, wenn es nicht funktioniert!
                          hopka.net!

                          Kommentar


                          • #14
                            so weit war ich auch schon....
                            wenn ich mir die Arrays schon vorher mit daten fülle, klppt das ja auch(auch im 2-Dimensionalen)

                            Mein Problem ist ja, dass das ganze in einem <input type="text"....>stehen muss, welches von 2 Verschachtelten For-Schleifen umlaufen wird. Und dann noch das Abfangen der Werte durch $_POST(array)....

                            Kommentar


                            • #15
                              und wie sieht der code, der diese Inputfelder schreibt, jetzt aus?

                              Kommentar

                              Lädt...
                              X