Werte bei einem Dynamischen Formular speichern

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

  • Werte bei einem Dynamischen Formular speichern

    Hallo Ihr ich versuch mal mein Problem so gut es geht zu beschreiben.
    Also ich habe ein Formular wo man über einen link felder hinzufügen bzw wieder löschen. Die Felder gebe ich mittels einer For schleife aus wobei der wert der Zählvariable $i über den Link +Feld hinzufügen per GET übergeben wird. Das Problem was ich habe immer wenn ich per Link ein feld hinzufüge verschwinden alle bissherigen eingaben im Formular. Gibts da einen Weg das zu umgehen ? Instgesamt hat das Formular 5 eingabefelder die man erweitern kann.

    Hier mal ein kleiner ausschnitt aus dem Code wenn mehr benötigt wird kein Prob und schonmal vielen Dank an euch
    mfg mo

    PHP-Code:
     for ($i=0$i<$count['feld1']; $i++){
                echo   
    "<div><input name=\"sb_von[".$i."]\" size=\"16\" class=\"input\"  />
                          bis <input name=\"sb_bis["
    .$i."]\" size=\"16\" class=\"input\"  />
                         <input name=\"sb_wo["
    .$i."]\" size=\"40\" class=\"input\" /></div>";
            }
            echo 
    "<a href=\"formular.php?action=".$count['feld1']."&section=1&sb=".$count['feld1']."&
                   pr="
    .$count['feld2']."&ef=".$count['feld3']."&kn=".$count['feld4']."&fr=".$count['feld5']."\">+ Neues Feld</a>";
            if(
    $count['feld1'] > 1){
                
    $sb $count['feld1'] - 2;
                echo 
    "<a href=\"formular.php?action=".$sb."&section=1&sb=".$sb."&pr=".$count['feld2']."&ef=".$count['feld3']."&
                kn="
    .$count['feld4']."&fr=".$count['feld5']."\">+ Feld L&ouml;schen</a> ";
            } 
    Zuletzt geändert von mo78; 26.07.2011, 11:51.

  • #2
    Hi.

    Du kannst es in Sessions z.B. speichern, oder Du nutzt JavaScript dafür. Schauste hier: Google

    mfg streuner
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
    der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

    "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

    Kommentar


    • #3
      Evtl. wärst du besser dran die zusätzlichen Felder per JS hinzuzufügen.

      Wenn es serverseitig sein muss, dann darfst du das hinzufügen nicht via Link erledigen, sondern musst einen Button verwenden, damit die bisher eingegebenen Daten an das Script übertragen werden.

      EDIT:
      Korrigiert - AJAX ist dafür natürlich nicht von nöten.
      Zuletzt geändert von Quetschi; 26.07.2011, 11:12.
      Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
      Schön - etwas Geschichte kann ja nicht schaden.
      Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

      Kommentar


      • #4
        Naja mit Ajax habe ich überhaupt keine erfahrungen werde aber mal die Button Methode ausprobieren besten Dank schonmal mfg
        mfg mo
        Zuletzt geändert von mo78; 26.07.2011, 11:08.

        Kommentar


        • #5
          Hmm kann mir einer vielleicht einen kleinen ansatz mal geben wie das über einen Button am besten zu machen ist iwie gerade nen brett vorm kopf^^
          Dankeschön mfg

          Kommentar


          • #6
            So?
            PHP-Code:
            <input type="submit" .... /> 


            BTW:
            Brich bitte noch den Code in deinem Eingangspost um!
            Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
            Schön - etwas Geschichte kann ja nicht schaden.
            Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

            Kommentar


            • #7
              @Quetschi: ich denke eher, das er ein funktionierendes Beispiel will!

              Alle nötigen Infos zum selber umsetzen hat er ja (eigentlich).

              @mo78: wie sieht dein Ansatz jetzt aus? Woran hakt es?

              mfg streuner
              Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
              der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

              "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

              Kommentar


              • #8
                Ich werd mich nachher da nachher nochmal ransetzen, und dann werd ich das Ergebniss nochmal posten mfg
                Zuletzt geändert von mo78; 26.07.2011, 11:50.

                Kommentar


                • #9
                  So mal eine Frage zum verständnis. Ich habe ja die ganzen Werte die ich über den Link jetzt übergebe. Werden die bei einem Button dann per POST über hidden fields übergeben? Und es soll ja auch nicht gesendet werden das Formular sondern nur $i für die entsprechenden Formfelder hochgezählt bzw runter gezählt werden. Und wie komme ich denn an die Values der anderen Felder um sie dann beim Laden zu übertragen. Ich habe ja insgesamt 3 von diesen kombination aus 3 eingabefeldern. Hmmmm iwie was ist mir da nicht so klar. Vielleicht muss ich da mal in die richtige Richtung geschubst werden .... schonmal Danke
                  mfg mo

                  PS Aber mal so gefragt ist es überhaupt sinnvoll das mit PHP zu machen oder sollte man dafür besser Javascript benutzen???
                  Zuletzt geändert von mo78; 26.07.2011, 14:09.

                  Kommentar


                  • #10
                    Du benennst den Button z.B. mit name="action" und übergibst value="Neues Feld" oder so etwas in der Richtung. $_POST["action"] wertest du dann in deinem Script entsprechend aus, ob dieser Button gedrückt wurde - in dem Fall lässt du in deinem Code nur ein weiteres Feld generieren und die bisherigen Eingaben schreibst du wieder in die Formularfelder (ins value-Attribut) rein.

                    Die weiteren Daten kannst du über hidden-inputs übergeben.
                    Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                    Schön - etwas Geschichte kann ja nicht schaden.
                    Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                    Kommentar


                    • #11
                      Ahh ich danke Dir werd ich mal ausprobieren mfg

                      Kommentar


                      • #12
                        So jetzt hab ich es soweit hinbekommen das es mit dem hinzufüen klappt aber leider bleiben die Values für die Felder nicht erhalten. Also das gleiche Prob wie mit den Links
                        hier mal der Code
                        mfg mo
                        PHP-Code:
                        <?php
                        if(isset($_POST['action'])){
                            
                        $count['feld1'] =  $_POST['f1'];

                            function 
                        moreForms($action){
                            
                        $action ++;
                                unset (
                        $_POST['action']);
                                    return 
                        $action;
                            }
                            
                        $count['feld1'] = moreForms($_POST['f1']);

                        }else{
                            
                        $count['feld1'] = 1;
                        }

                        ?>
                         <div class="felder"><span>Vorname / Nachname :</span></div>
                         <div><input name="vorname" type="text" size="20" value="<?php if(isset($_POST['vorname'])){echo $_POST['vorname'];}?>" />
                              <input name="nachname" type="text" size="20"  value="<?php if(isset($_POST['nachname'])){echo $_POST['nachname'];}?>" /></div>

                         <div class="pr_felder"><span>Feld1:</span></div>
                         <?php
                         
                        for ($i=0$i<$count['feld1']; $i++){?>
                               <div><input name="sb_von[]" size="16" class="input"  value="<?php if(isset($_POST[$i]['sb_von'])){echo $_POST[$i]['sb_von'];}?>"/>
                               bis <input name="sb_bis[]" size="16" class="input"   value="<?php if(isset($_POST[$i]['sb_bis'])){echo $_POST[$i]['sb_bis'];}?>"/>
                               <input name="sb_wo[]" size="40" class="input"  value="<?php if(isset($_POST[$i]['sb_wo'])){echo $_POST[$i]['sb_wo'];}?>"/></div>
                                <?php
                                
                        }
                                echo 
                        $count['feld1'];
                                
                        ?>
                                <form  method="post" action="test.php" enctype="multipart/form-data">
                                <input type="submit" name="action" value="Neues Feld" />
                                <input type="hidden" name="section" value="1" />
                                <input type="hidden" name="f1" value="<?php echo $count['feld1'];?>" />
                                </form>

                        Kommentar


                        • #13
                          Klaro - die restlichen Felder sind ja nicht innerhalb deines Formulares.
                          Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                          Schön - etwas Geschichte kann ja nicht schaden.
                          Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                          Kommentar


                          • #14
                            Ahh also wenn ich die anderen felder mit ins Formular nehmen dann bleiben die oberen beiden felder stehen aber die einträge in dem Block der kopiert wird verschwinden. Und wie kann ich denn unterscheiden zwischen nur einem Feld hinzufügen und das formular absenden??? Das ist mir iwie nicht so klar? Ich mache das immer so das ich noch ein hidden feld habe was mit value="1" gesetzt ist und wenn das gesendet wurde wird das Formular nicht mehr angezeigt und die Daten werden weiter verarbeitet. Und das würde ja dann auch bei jedem button click mit gesendet werden..??? Oder gibts da noch eine bessere Methode das zu prüfen?
                            mfg mo
                            Zuletzt geändert von mo78; 26.07.2011, 16:23.

                            Kommentar


                            • #15
                              Schau dir mit var_dump(); an, ob das POST-Array so aufgebaut ist, wie du darauf zugreifen willst und passe das ggf. an.

                              Die Unterscheidung kann mit über die values der Buttons erfolgen:

                              PHP-Code:
                              <input type="submit" name="action" value="Tu dies" />
                              <
                              input type="submit" name="action" value="Tu das" /> 
                              Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
                              Schön - etwas Geschichte kann ja nicht schaden.
                              Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

                              Kommentar

                              Lädt...
                              X