PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks. |
 |
|

26-07-2011, 11:44
|
mo78
Registrierter Benutzer
|
|
Registriert seit: Sep 2010
Beiträge: 88
|
|
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']."§ion=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."§ion=1&sb=".$sb."&pr=".$count['feld2']."&ef=".$count['feld3']."& kn=".$count['feld4']."&fr=".$count['feld5']."\">+ Feld Löschen</a> "; }
Geändert von mo78 (26-07-2011 um 12:51 Uhr)
|

26-07-2011, 11:49
|
streuner
Registrierter Benutzer
|
|
Registriert seit: Aug 2009
Ort: Lüneburg
Beiträge: 623
|
|
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 ---"
|

26-07-2011, 12:01
|
Quetschi
PHP Expert
|
|
Registriert seit: Dec 2004
Beiträge: 3.134
|
|
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.
__________________
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!
Geändert von Quetschi (26-07-2011 um 12:12 Uhr)
|

26-07-2011, 12:01
|
mo78
Registrierter Benutzer
|
|
Registriert seit: Sep 2010
Beiträge: 88
|
|
Naja mit Ajax habe ich überhaupt keine erfahrungen werde aber mal die Button Methode ausprobieren  besten Dank schonmal mfg
mfg mo
Geändert von mo78 (26-07-2011 um 12:08 Uhr)
|

26-07-2011, 12:11
|
mo78
Registrierter Benutzer
|
|
Registriert seit: Sep 2010
Beiträge: 88
|
|
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
|

26-07-2011, 12:21
|
Quetschi
PHP Expert
|
|
Registriert seit: Dec 2004
Beiträge: 3.134
|
|
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!
|

26-07-2011, 12:24
|
streuner
Registrierter Benutzer
|
|
Registriert seit: Aug 2009
Ort: Lüneburg
Beiträge: 623
|
|
@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 ---"
|

26-07-2011, 12:44
|
mo78
Registrierter Benutzer
|
|
Registriert seit: Sep 2010
Beiträge: 88
|
|
Ich werd mich nachher da nachher nochmal ransetzen, und dann werd ich das Ergebniss nochmal posten  mfg
Geändert von mo78 (26-07-2011 um 12:50 Uhr)
|

26-07-2011, 14:55
|
mo78
Registrierter Benutzer
|
|
Registriert seit: Sep 2010
Beiträge: 88
|
|
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???
Geändert von mo78 (26-07-2011 um 15:09 Uhr)
|

26-07-2011, 15:06
|
Quetschi
PHP Expert
|
|
Registriert seit: Dec 2004
Beiträge: 3.134
|
|
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!
|

26-07-2011, 15:16
|
mo78
Registrierter Benutzer
|
|
Registriert seit: Sep 2010
Beiträge: 88
|
|
Ahh ich danke Dir  werd ich mal ausprobieren mfg
|

26-07-2011, 16:52
|
mo78
Registrierter Benutzer
|
|
Registriert seit: Sep 2010
Beiträge: 88
|
|
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>
|

26-07-2011, 16:59
|
Quetschi
PHP Expert
|
|
Registriert seit: Dec 2004
Beiträge: 3.134
|
|
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!
|

26-07-2011, 17:06
|
mo78
Registrierter Benutzer
|
|
Registriert seit: Sep 2010
Beiträge: 88
|
|
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
Geändert von mo78 (26-07-2011 um 17:23 Uhr)
|

26-07-2011, 17:26
|
Quetschi
PHP Expert
|
|
Registriert seit: Dec 2004
Beiträge: 3.134
|
|
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!
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Thema bewerten |
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|