Ankündigung

Einklappen
Keine Ankündigung bisher.

Verarbeitung von nummerierten Formularfeldern

Einklappen

Neue Werbung 2019

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

  • Verarbeitung von nummerierten Formularfeldern

    Coucou..

    Ich steh wohl irgendwie auf dem Schlauch.

    Ich habe ein Formular mit zwei Feldern, die aufwärts nummeriert werden.

    menge[1], menge[2] ... usw - Standartwert ist 0.

    Das andere Feld ist der Code.
    code[1], code[2]...

    Nun habe ich zwar im $_POST schön alle Daten drin, möchte aber nur diejenigen "Pärchen" im Array behalten, bei denen der Wert des menge-arrays grösser als 0 ist.

    Ich habe nun sowas
    function raus($var)
    {
    return(!($var == 0));
    }

    $nullenrausgefiltert = (array_filter($_POST["menge"], "raus"));

    Funktioniert auch, aber ich bekomme ja nur den Schlüssel für den jeweiligen Key von Menge, nicht aber den dazu gehörigen Wert für das Feld code.

    Die Codewerte werden immer mitgeliefert, ob nun eine Anzahl (menge) eingegeben worden ist oder nicht. Ich kann also nicht beide Werte nach!0 filtern.

    Vielleicht kann mir ja hier einer helfen, den Fuss vom Schlauch zu nehmen

    Merci im Voraus


  • #2
    Kapier ich nicht. Bitte beachten: Forenrichtlinien
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      Ich kapiers aber ...

      Probier mal folgendes:

      PHP-Code:
      print '<form action="index.php" method="post">
                  <input name="code[1]"/>
                  <input name="menge[1]" />
                  <input name="code[2]" />
                  <input name="menge[2]" />
                  <input type="submit" />
              </form/>'
      ;
              
      foreach (
      $_POST as $key => $value) {
          foreach (
      $value as $key2 => $value2) {
              
      $array[$key2][$key] = $value2;
          }    
      }

      foreach (
      $array as $key => $value){
          if (empty(
      $value['menge'])) {
              unset (
      $array[$key]);
          }
      }

      print_r ($array); 

      Kommentar


      • #4
        Wieso sollte man dann nicht gleich die Formularfelder ordentlich benennen? Und was soll der obige Code für einen tieferen SInn haben?
        --

        „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
        Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


        --

        Kommentar


        • #5
          Der Sinn des Codes? Den $_POST-Array in eine andere Form umwandeln und anschließend die Paare, bei denen die Menge "empty" ist, aus dem Array löschen. Am Ende liegt ein wohl geformter Array mit den relevanten $_POST-Daten vor.

          Was die Benennung der Formularfelder angeht: Ehrlich gesagt fällt mir nichts anderes ein, wie man die Formularfelder sinnvoll gruppieren kann.

          Kommentar


          • #6
            Tja, Dir nicht.
            Code:
            val[1][code]
            val[1][menge]
            val[2][code]
            val[2][menge]
            --

            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


            --

            Kommentar


            • #7
              Hallo Trainmaster
              Vielen Dank
              Es funktioniert perfekt, genauso wie gewollt.
              Vielen, vielen Dank !

              Kommentar


              • #8
                @ Ameliore

                Bedank dich bei nikosch, dass es noch kürzer geht:

                PHP-Code:
                print '<form action="index.php" method="post">
                            <input name="val[1][code]"/>
                            <input name="val[1][menge]" />
                            <input name="val[2][code]"/>
                            <input name="val[2][menge]" />
                            <input type="submit" />
                        </form/>'
                ;

                    
                foreach (
                $_POST['val'] as $key => $value){
                    if (empty(
                $value['menge'])) {
                        unset (
                $_POST['val'][$key]);
                    }
                }

                print_r ($_POST['val']); 

                @ nikosch

                Scheinbar kapierst du es schon...

                Kommentar


                • #9
                  Aber nicht aus dem schlecht formatierten und formulierten Ausgangsposting..
                  --

                  „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                  Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                  --

                  Kommentar

                  Lädt...
                  X