Ankündigung

Einklappen
Keine Ankündigung bisher.

$_POST-Abfrage bei dynamisch erzeugten Komponenten

Einklappen

Neue Werbung 2019

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

  • $_POST-Abfrage bei dynamisch erzeugten Komponenten

    Hallo.

    Ich erzeuge mit einer Schleife einige Select-Inputs. Deren Anzahl steht nicht fest. Wie kann ich mit $_POST die Werte einer unbestimmten Anzahl dieser Inputs an ein Dokument übergeben?

    Auch deren Namen werden dynamisch erzeugt:
    Code:
    while(...)
    {
     echo("<input type=\"select\" name=\"Feld".$Runde."\">
     $Runde++
    }
    Wie muß also der dementsprechende $_POST-Anweisung aussehen?

    Vielen Dank,

    Sven
    sigpic
    Vielen Dank für Eure Zeit, Absicht, Mühe und für Eure Ideen. Grüße,
    Sven


  • #2
    Wie muß also der dementsprechende $_POST-Anweisung aussehen?
    die variablen dazu auf der seite wo du es hinschickst oder wie?

    ich täts die anzahl der "runden" einfach mitschicken, also so z.b.
    <select type='hidden' name='runden' value='$Runden'>
    und dann auf der seite wo du des hingeschickt hast mit einem array die variablen definieren

    Kommentar


    • #3
      Ja, richtig. Das Formular verschickt die Werte an sich selbst, wo dann, beim erneuten laden, der PHP-Code mittels $_POST die Werte lesen soll.
      sigpic
      Vielen Dank für Eure Zeit, Absicht, Mühe und für Eure Ideen. Grüße,
      Sven

      Kommentar


      • #4
        Zitat von prozizer
        Wohnort: Moosburg
        cool, sogar mal jemand aus der umgebung..
        Klick mich


        Kommentar


        • #5
          ich täts die anzahl der "runden" einfach mitschicken, also so z.b.
          <select type='hidden' name='runden' value='$Runden'>
          und dann auf der seite wo du des hingeschickt hast mit einem array die variablen definieren
          hatte es gerade editiert als du geantwortet hast ^^

          Zitat von md5hash
          Zitat von prozizer
          Wohnort: Moosburg
          cool, sogar mal jemand aus der umgebung..
          wiso woher kommst du?

          Kommentar


          • #6
            landshut
            Klick mich


            Kommentar


            • #7
              cool
              ...
              @thread
              sry aba des mit dem array stimmt glaub ich nich ganz...

              Kommentar


              • #8
                Prozizer,

                danke für Deinen Vorschlag. Hmm, mir ist der Vorschlag zu hoch, glaube ich. Ich arbeite zwar ganz gut mit PHP, aber andere Denkweisen sind immer mein kleines Problem. Kannst Du mir ein Beispiel geben?

                Hier gebe ich erstmal an, wie es bei mir zur Zeit aussieht (Input... wäre der Name der Felder, RUNDE da wo das Problem liegt: Namenerstellung):

                PHP-Code:
                <?php
                $AmountOfQuestions
                =$_POST["AmountOfQuestions"];
                  for(
                $Runde=0;$Runde==$AmountOfQuestions;$Runde++)
                  {
                   
                $InputRUNDE=$_POST["AmountOfQuestions"];
                   ...
                  }
                ?>
                zuvor:

                PHP-Code:
                <?php
                while(...)
                {
                 echo(
                "<input type=\"select\" name=\"Input".$AmountOfQuestions."\">");
                 
                $AmountOfQuestions++;
                }
                ?>
                sigpic
                Vielen Dank für Eure Zeit, Absicht, Mühe und für Eure Ideen. Grüße,
                Sven

                Kommentar


                • #9
                  die variable $AmountOfQuestion ist doch eine zahl, oder?
                  ich glaub man muss da die anzahl der felder mitschicken und den rest irgendwie mit einem array machen. ich persönlich hasse arrays ...^^
                  mit dem mitschicken:
                  zuvor:
                  PHP-Code:
                  <?php
                  while(...)
                  {
                   echo(
                  "<input type=\"select\" name=\"Input".$AmountOfQuestions."\">");
                   
                  $AmountOfQuestions++;
                  }
                  echo 
                  "<select type='hidden' name='AmountOfQuestion' value='$AmountOfQuestion'>";
                  ?>
                  dann hast du schonmal die anzahl der felder
                  aber wie man das dann gescheit macht, weiß ich nicht

                  zu allergrößten not musst du halt den kram per hand machen also so ^^
                  $Input1 = $_POST['Input1'];
                  $Input2 = $_POST['Input2'];
                  $Input3 = $_POST['Input3'];
                  ....

                  Kommentar


                  • #10
                    Na ja, genau da war ich ja schon angelangt. Und genau dies wollte ich vermeiden. Ich weiß ja nicht, ob es nur 10 oder 500 Felder sind. Ansonste: ja, "AmountOfQuestion" enthält eine Anzahl, diese bekomme ich ja auch mit $_POST wieder als Wert zurück.
                    sigpic
                    Vielen Dank für Eure Zeit, Absicht, Mühe und für Eure Ideen. Grüße,
                    Sven

                    Kommentar


                    • #11
                      nenn halt einfach des feld nicht Input1, Input2 ...
                      sondern einfach 0,1,2,3,4,...

                      so könnts vl gehn:
                      PHP-Code:
                      <?php

                      $AmountOfQuestions
                      =$_POST["AmountOfQuestions"];
                        for(
                      $Runde=0;$Runde==$AmountOfQuestions;$Runde++)
                        {
                        
                      $a = array();
                        
                      $a["$Runde"] = $_POST["$Runde"];
                        }

                      ?>
                      für das feld 0 steht dann die variable $a[0]
                      und für 1 $a[1]

                      Kommentar


                      • #12
                        PHP-Code:
                        <?php
                        for ( $calc 1$sum count($_POST); $calc $sum$calc++ ) {
                          if ( isset(
                        $POST['Input'.$calc.'']) ) {
                            
                        //tuwas
                          
                        }
                        }
                        ?>
                        warum soll ich das per Hand von nem array in ne var schreiben?
                        Per schleife alle Post durchlaufen und irgendwas, was du halt machen willst, machen ...
                        schlimmer gehts nimmer.... dümmer immer!

                        Kommentar


                        • #13
                          Hallo!

                          Vielen Dank an alle, die mir geholfen haben. Vor allem möchte ich dieses Mal "Search" danken, dessen Vorschlag mir die Wege entgültig geebnet hat! Aber, wie gesagt, auch jedem anderen!

                          Dieses Thema ist hiermit geschlossen. Viele Grüße,

                          Sven
                          sigpic
                          Vielen Dank für Eure Zeit, Absicht, Mühe und für Eure Ideen. Grüße,
                          Sven

                          Kommentar


                          • #14
                            Nachfrage nach Bsp. mit Lösung

                            Hallo Sven,

                            habe genau Dein Problem.

                            Eine in einer Funktion dynamisch erzeugte Select-Liste und will nun über den Namen der Select-Liste mittels POST den aktuellen Inhalt holen. Das gelingt mir aber nicht.

                            Leider habe ich die vorhergehenden Kommentare nicht umsetzen können. Wäre super, wenn Du mir verständlich machen kannst. Wie ich das Problem gelöst beomme.

                            Danke Doria

                            Kommentar


                            • #15
                              schickt doch einfach alle Felder in einem Array.
                              Beispiel bei den Selects sollte der HTML Code so aussehen:

                              <select name="feldname[0]">

                              <select name="feldname[1]">
                              ...

                              Dynamisch entsprechend

                              // Schleife irgendwas {
                              echo '<select name="feldname['.$counter.']">';
                              }


                              Dann liegt der Wert jedes Selects in dem Array $_POST['feldname'] vor.

                              also $_POST['feldname'][0], $_POST['feldname'][1] usw...

                              foreach ($_POST['feldname'] as $wert)
                              {
                              echo $wert;
                              }
                              gibt dann alle aus.

                              Kommentar

                              Lädt...
                              X